在许多论坛和文件中有关组件通过npm安装的答案中,经常提到了
--save
。
本地安装(无需--save,它是默认的)
如果您没有使用-g标志进行安装,则默认情况下会得到--save选项(现在为
--save-prod
或
-P
缩写)。因此以下所有内容都相同:
npm i blabla
npm install blabla
npm i blabla --save
npm install blabla
npm i blabla --save-prod
npm install blabla -P
这个命令的作用有两个。
- 如果缺少或需要升级依赖,它将安装blabla包和所有依赖项。安装位置在项目中的
node modules
文件夹下。
- 它将在package.json文件的
dependencies
部分标记此包。因此下次运行 npm install
或 yarn install
,将根据此列表安装所有正确的包。
全局包应安装在用户的全局包
node_modules
文件夹中。您安装的全局包未在项目中任何位置列出。请参阅下一节。
全局安装 (-g - 不写入package.json)
以下内容等效于其他内容,但这次它们不会将操作过程写入package.json文件,而是因为它们"位于路径中"而起作用:
npm i -g blabla
npm i blabla -g
npm i blabla --save-global
在上一行中,如果缺少某个软件包或需要升级,则会安装blabla
及其所有依赖项,但不会在您的package.json
文件中写入任何内容。
开发者/开发安装:
最后是dev
选项。以下所有选项都是等效的。
npm i -d blabla
npm i blabla -d
npm install blabla --save-dev
npm install blabla --d
这样做有如下作用:
它会将blabla及其所有依赖项安装到项目下的一个名为node modules
的文件夹中。
它还会在package.json
文件中列出blabla
包及blabla所需的任何其他包,但是这次会放在一个名为Dev-Dependencies的特殊部分下。
然后你可以运行npm i
(或者yarn i
),现在它就可以工作了。如果你正在作为开发者打包,那么一切都像往常一样安装。(不需要在project.json
中写任何东西,因为我们只是从文件列表中精确地读取了每一项!!)
但是,如果你要安装到生产环境(这个答案不包括如何进行此操作),那么所有Dev包都不会被安装。它们只在开发阶段使用,比如读取和检查代码错误的Linters。
--dev
选项的内容。 - R andomnpm install --production
用于排除devDependencies。 - Muhammad Umer