有什么区别:
npm install [package_name]
and:
npm install [package_name] --save
and:
npm install [package_name] --save-dev
这是什么意思?——save和-dev关键字的真正作用是什么?
有什么区别:
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也会在你的项目文件夹中安装开发依赖模块和依赖模块
其他回答
正如@andreas-hultgren在这个回答中所建议的,根据npm文档:
如果有人打算下载并在他们的程序中使用您的模块,那么他们可能不想或不需要下载并构建您使用的外部测试或文档框架。
然而,对于web应用程序开发,Yeoman(一个脚手架工具,用于安装同行评审的预先编写的包)。将所有的包放在devDependencies中,而不是放在dependencies中,所以看起来——save-dev的使用在web应用程序开发中是一个安全的赌注,至少。
——save-dev将semver规范保存到包描述符文件中的“devDependencies”数组中,——save将其保存到“dependencies”数组中。
一个完美的例子是:
$ npm install typescript --save-dev
在这种情况下,你会希望使用Typescript(一种可解析javascript的编码语言)进行开发,但一旦应用被部署,就不再需要Typescript了,因为所有的代码都已转译为javascript。因此,将它包含在已发布的应用程序中毫无意义。事实上,它只会占用空间并增加下载时间。
默认情况下,NPM只是在node_modules下安装一个包。当你试图为你的app/模块安装依赖项时,你需要先安装它们,然后将它们添加到package.json的依赖项部分。
——save-dev将第三方包添加到包的开发依赖项中。当有人直接运行npm install来安装你的包时,它不会被安装。通常只有当有人先克隆你的源存储库,然后在其中运行npm install时才会安装它。
——save将第三方包添加到包的依赖项中。当有人运行npm install package时,它将与包一起安装。
开发依赖项是那些只在开发包时需要的依赖项。这可以包括测试运行器、编译器、打包器等。 这两种类型的依赖关系都存储在包的包中。json文件。——save-dev添加到devDependencies
NPM安装文档可以参考这里。
--
请注意——save现在是默认选项,从NPM 5开始。因此,不再显式地需要它。不使用——save命令也可以运行npm install来达到同样的效果。
as——save是npm的默认选项,所以我使用
npm i package
还有,我用的是
npm i package -D
默认选项将安装包作为项目依赖项,其中as -D为开发依赖项,如测试,lint等,并为开发过程安装包
你可以在这里找到所有的标志https://docs.npmjs.com/cli/v8/commands/npm-install