有什么区别:
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或——save-dev将依赖项与devDependencies分开。 安装所有我们使用的:
npm i
要只安装生产包,我们应该使用:
npm i --only=production
其他回答
——save-dev(只用于开发,不用于生产) ——save(生产依赖项) ——global或-g(全局使用,即可以在本地系统的任何地方使用)
基本上我们写
npm install package_name
但特别为了测试目的,我们不需要在应用程序运行在正常状态下运行一些包,因此Node引入了很好的方法来解决这个问题。每当我们写作时
npm install package_name --save-dev
当时,该包仅用于开发目的而安装。
已经给出了明确的答案。但是值得一提的是devDependencies是如何影响安装包的:
默认情况下,npm install将安装package中列出的所有依赖项。json。使用——production标志(或者当NODE_ENV环境变量被设置为production时),npm将不会安装devDependencies中列出的模块。
参见:https://docs.npmjs.com/cli/install
一般来说,您不希望产品包中充斥着只打算用于开发目的的东西。
使用——save-dev(或-D)选项来分离单元测试框架(jest, jasmine, mocha, chai等)等包。
你的应用需要用于生产的任何其他包都应该使用——save(或-S)来安装。
npm install --save lodash //prod dependency
npm install -S moment // " "
npm install -S opentracing // " "
npm install -D jest //dev only dependency
npm install --save-dev typescript //dev only dependency
如果你打开包裹。Json文件,然后你会看到这些条目列出在两个不同的部分:
"dependencies": {
"lodash": "4.x",
"moment": "2.x",
"opentracing": "^0.14.1"
},
"devDependencies": {
"jest": "22.x",
"typescript": "^2.8.3"
},
as——save是npm的默认选项,所以我使用
npm i package
还有,我用的是
npm i package -D
默认选项将安装包作为项目依赖项,其中as -D为开发依赖项,如测试,lint等,并为开发过程安装包
你可以在这里找到所有的标志https://docs.npmjs.com/cli/v8/commands/npm-install