有什么区别:

npm install [package_name]

and:

npm install [package_name] --save

and:

npm install [package_name] --save-dev

这是什么意思?——save和-dev关键字的真正作用是什么?


当前回答

——save-dev用于应用程序开发中使用的模块,而不是在生产环境中运行时需要的模块 ——save用于将其添加到包中。Json,它是运行应用程序所必需的。

例如:express,body-parser,lodash,helmet,mysql所有这些都是在运行应用程序时使用的,而mocha,istanbul,chai,sonarqube-scanner都是在开发过程中使用的,所以把它们放在dev-dependencies中。

NPM link或NPM install也会在你的项目文件夹中安装开发依赖模块和依赖模块

其他回答

as——save是npm的默认选项,所以我使用

npm i package 

还有,我用的是

npm i package -D

默认选项将安装包作为项目依赖项,其中as -D为开发依赖项,如测试,lint等,并为开发过程安装包

你可以在这里找到所有的标志https://docs.npmjs.com/cli/v8/commands/npm-install

——save-dev(只用于开发,不用于生产) ——save(生产依赖项) ——global或-g(全局使用,即可以在本地系统的任何地方使用)

正如@andreas-hultgren在这个回答中所建议的,根据npm文档:

如果有人打算下载并在他们的程序中使用您的模块,那么他们可能不想或不需要下载并构建您使用的外部测试或文档框架。

然而,对于web应用程序开发,Yeoman(一个脚手架工具,用于安装同行评审的预先编写的包)。将所有的包放在devDependencies中,而不是放在dependencies中,所以看起来——save-dev的使用在web应用程序开发中是一个安全的赌注,至少。

已经给出了明确的答案。但是值得一提的是devDependencies是如何影响安装包的:

默认情况下,npm install将安装package中列出的所有依赖项。json。使用——production标志(或者当NODE_ENV环境变量被设置为production时),npm将不会安装devDependencies中列出的模块。

参见:https://docs.npmjs.com/cli/install

人们在生产中使用npm来做一些非常酷的事情,Node.js就是一个例子,所以你不希望所有的开发工具都在运行。

如果您正在使用gulp(或类似)来创建构建文件并将其放到服务器上,那么这并不重要。