gpt4 book ai didi

node.js - npm install 中的 --save 和 --save-dev 有什么区别?

转载 作者:搜寻专家 更新时间:2023-10-31 22:26:46 25 4
gpt4 key购买 nike

我试图了解何时何地使用这些标签,我知道一个用于开发依赖性,另一个用于项目依赖性,但是当将它用于实时项目时,我找不到任何差异。我正在寻找一种方法,它会为错误的安装类型抛出错误。有办法吗?

最佳答案

dependencies 是您的项目依赖的模块,devDependencies 是您用来开发项目的模块。您可以在 npmjs website 上阅读详细说明。 :

If someone is planning on downloading and using your module in their program, then they probably don't want or need to download and build the external test or documentation framework that you use.

In this case, it's best to map these additional items in a devDependencies object.

依赖示例:requestconcat-streamobject.assignthrough2

devDependencies 示例:mochatapeeslintgruntbrowserify.

无论何时安装或初始化项目,都会安装依赖项,它们是项目运行所必需的。 devDependencies 仅用于开发(测试框架、任务运行器……),并且仅当有人从项目的根目录运行 npm install 时才会安装它们。例如,在克隆项目存储库之后。

您可以很容易地验证这一点。假设我在同一目录中有模块 foobarbazquux。设 foobaz 的依赖,barbaz 的 devDependency,baz 本身是 quux 的依赖项。

#/$ cd baz
#/baz$ cat package.json
{
"name": "baz",
"version": "0.0.0",
"dependencies": {
"foo": "../foo"
},
"devDependencies": {
"bar": "../bar"
}
}
#/baz$ npm install
baz@0.0.0 /tmp/tmpdir/g6jBr9/baz
├── bar@0.0.0
└── foo@0.0.0

如您所见,依赖项和 devDependencies 都已安装。

现在让我们安装 baz 作为 quux 的依赖:

#/$ cd quux
#/quux$ cat package.json
{
"name": "quux",
"version": "0.0.0",
"dependencies": {
"baz": "../baz"
}
}
#/quux$ npm install
#/quux$ npm ls
quux@0.0.0 /tmp/tmpdir/g6jBr9/quux
└─┬ baz@0.0.0
└── foo@0.0.0

注意 foo 已安装,但 bar 未安装。这是因为如果您需要某个模块作为另一个模块的依赖项(即您是该模块的消费者),则不需要它的 devDependencies,因为模块运行不需要它们.

关于node.js - npm install 中的 --save 和 --save-dev 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33504641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com