Node.js: 确定手动安装的模块和版本号以供 package.json 使用。

18 浏览
0 Comments

Node.js: 确定手动安装的模块和版本号以供 package.json 使用。

我正准备为\"生产模式\"准备一个Web服务器(MEAN环境,指服务器端),同时也要为我的项目创建package.json文件。由于现在使用了大量的文件和模块,我正在尝试找出最简单和最可靠的方法来定义哪些模块应该包含在我的package.json文件中:\n1)是否有办法告诉Node.js自动创建一个包含自从安装Node.js后手动添加的所有模块的package.json文件(对于我当前的Node.js项目非常重要)?\n2)如果没有,如何列出仅手动安装的模块(与使用类似npm -g ls --json列出所有模块的方法相对)?

0
0 Comments

问题的出现原因是在安装每个Node模块时,通常会使用npm install modulename --savenpm install modulename --save-dev将其保存到package.json中。但是如果需要将所有安装的模块添加到package.json中,就需要编写一个脚本来实现这个功能。

解决方法是编写一个脚本来获取每个依赖项的名称和版本,并将其添加到package.json中。可以参考这里提供的一个解决方案:https://stackoverflow.com/a/13381344/5070356。这个脚本会获取每个依赖项的名称和版本,并将其添加到package.json中。

0
0 Comments

问题的出现原因是作者想要确定手动安装的模块及其版本号,解决方法是使用npm命令来获取已安装的根级别模块列表。

要获取已安装在项目目录中的根级别模块列表,可以使用以下命令:

$ npm ls --depth 0 --json

如果模块是全局安装的(不建议这样做),可以使用以下命令:

$ npm ls -g --depth 0 --json

提示:在开始一个新项目时,可以让npm立即创建一个新的package.json文件:

$ npm init

在安装所需模块时,可以让npm自动将它们添加到package.json文件中:

$ npm install module --save

还有他手动安装的模块是指在安装了Node.js之后自己安装的模块(即不是Node.js自带的模块)。

关于全局安装模块的问题,作者询问了安装模块时使用`npm install -g`和`sudo npm install -g`命令的区别,以及在这个上下文中全局的含义。

对此,另一位回答者解释道,全局安装模块意味着它们将被系统范围内安装,而不仅仅是在项目中本地安装。如果不同的项目依赖于同一个全局安装的模块的不同版本,可能会出现问题。因此,最好将项目所需的模块“靠近”项目(即安装在本地的`./node_modules`目录中,当不使用`-g`标志时会自动安装在这里)。

这样解释后,作者表示理解了,并感谢对此解释的澄清。

0