Nodejs:node_modules 能不能做成类似 java jar 包的形式?

Nodejs:node_modules 能不能做成类似 java jar 包的形式?

目录层次太深了!

node 官方没注意到这个问题吗?

17 回复

是不是目录太深,文件太多导致在 windows 的资源管理器无法复制移动?确实可怕,一个工程往往有几万个文件


npm3 扁平化了,层次不深了,文件夹多了

同感,有时候打包发给同事。如果忘了 tar --exclude=node_modules 的话,速度感人…… ;另外有时候用 ftp 上传目录,忘了排除的话,也会导致软件假死……
不知道在完成后弄成一个包是有什么技术困难还是?


ES6 说目标是使 js 称为企业级开发语言,如果这个问题不能很好解决,会很麻烦的
就算不做成 jar 包的那种形式,类似 maven 的中央仓库管理也是可行的啊,一个 pom 文件就搞定
为啥要每个 node_modules 中还有好多个 node_modules.
又杂又乱,调试测试时 头大 …

原始设计好像是为了多版本依赖共存。现在最新的应该拍扁了。

LZ 赶紧升级到 npm3, npm3 安装的依赖就是在同一层目录下, 早就没有一层套一层的 node_modules 了

npm3 不是这种层级的了,是扁平化的了

npm 不就相当于 maven ?

不是有项目的配置么 删除了之后 npm install 就全装回来了

https://docs.npmjs.com/how-npm-works/npm3 这是 npm3 下载依赖的结构图

为什么 nodejs 的节点这 CSS 这么白??有什么渊源吗

npm pack 是正解

: 看了下图,感觉特么的不彻底啊,还是存在安装在某个依赖下面的依赖,假设图中的 B2.0 如果依赖另外一个第一层的依赖会怎么办。

很奇怪为毛不搞成跟 maven 一样,库名–版本号–文件的方式呢

不会写 package.json ? 别人的包怎么依赖跟你是无关的。

在Node.js生态系统中,虽然默认情况下node_modules目录用于存储项目依赖,但确实可以通过一些工具和手段将依赖打包成类似于Java JAR包的形式,以便于分发和部署。

一种常见的方法是使用工具如pkgnexe。这些工具可以将Node.js应用及其依赖打包成一个独立的可执行文件,类似于Java的JAR包。

以下是一个使用pkg的简单示例:

  1. 安装pkg

    npm install -g pkg
    
  2. 在你的Node.js项目根目录下,确保有一个package.json文件,并且已经安装了所有依赖。

  3. 使用pkg打包应用:

    pkg .
    

    这将在当前目录下生成与操作系统和架构相匹配的可执行文件(例如,my-app-linux, my-app-macos, my-app-win.exe)。

通过这些可执行文件,你可以在没有Node.js环境的机器上运行你的应用,因为它们已经包含了所有必要的依赖。

此外,虽然这种方式没有直接创建一个JAR文件,但它提供了类似的分发和部署便利性。如果你确实需要JAR格式,你可能需要考虑使用其他技术栈或工具来桥接Node.js和Java之间的需求。

回到顶部