这份文档回答了我的问题,但解释得不够清楚。有没有人能用更简单的话来说一下?如果难以选择简单的词语,可以举例说明吗?
另外,我还添加了peerDependencies
,这个也与之密切相关,可能会引起混淆。
这份文档回答了我的问题,但解释得不够清楚。有没有人能用更简单的话来说一下?如果难以选择简单的词语,可以举例说明吗?
另外,我还添加了peerDependencies
,这个也与之密切相关,可能会引起混淆。
依赖项(Dependencies) - npm install <package> --save-prod
安装在生产环境中应用程序所需要的包。
开发依赖项(DevDependencies) - npm install <package> --save-dev
只安装本地开发和测试所需的包。
只需键入 npm install
即可安装 package.json 中提到的所有包。
npm install
并继续操作 :)依赖项与开发依赖项
开发依赖项是在开发过程中才需要使用的模块,而依赖项则是在运行时必须要使用的。如果您部署应用程序,则必须安装依赖项,否则您的应用程序将无法工作。从代码中调用的库可以视为依赖项,这些库使程序能够运行。
例如 - React,React-dom
在生产服务器上不需要安装开发依赖项,因为您不会在该机器上进行开发。将您的代码转换为JavaScript的编译器、测试框架和文档生成器可以视为开发依赖项,因为它们只在开发过程中需要使用。
例如 - ESLint,Babel,webpack
@FYI,
mod-a
dev-dependents:
- mod-b
dependents:
- mod-c
mod-d
dev-dependents:
- mod-e
dependents:
- mod-a
----
npm install mod-d
installed modules:
- mod-d
- mod-a
- mod-c
----
checkout the mod-d code repository
npm install
installed modules:
- mod-a
- mod-c
- mod-e
如果您正在发布到npm,则使用正确的标志来安装正确的模块非常重要。如果该模块是npm模块运行所需的,那么请使用“--save”标志将该模块保存为依赖项。如果该模块不需要运行但需要进行测试,则使用“--save-dev”标志。
# For dependent modules
npm install dependent-module --save
# For dev-dependent modules
npm install development-module --save-dev
在尝试分发npm包时,应避免使用dependencies
。相反,您需要考虑将其添加到peerDependencies
中。
大多数情况下,依赖项只是描述您生态系统的一堆库。除非您确实在使用特定版本的库,否则应该让用户选择是否安装该库以及选择哪个版本,方法是将其添加到peerDependencies
中。
dependencies
? - Nico Haase这些是您的软件包运行所需的软件包,因此在用户运行时会安装它们。
npm install PACKAGE-NAME
例如,如果您在项目中使用了jQuery,那么如果别人没有安装jQuery,则它将无法工作。为了避免这种情况,可以使用依赖项来保存。
npm install --save
这些是在开发过程中使用的依赖项,但在别人使用时不需要,因此当别人运行npm install
时,不会安装它们,因为它们不是必需的。例如,如果您使用mocha
进行测试,人们不需要mocha
来运行,因此npm install
不会安装它。要保存为开发依赖项,请使用
npm install PACKAGE --save-dev
如果您想创建和发布自己的库,以便将其用作依赖项,则可以使用这些依赖项。例如,如果您希望您的包被用作另一个项目的依赖项,那么在安装具有您的项目作为依赖项的项目时,也会安装这些同级依赖项。大多数情况下,您不会使用同级依赖项。
当使用Webpack来打包前端应用程序时,依赖项和开发依赖项之间的区别并不那么清晰。对于最终的捆绑包来说,无论您将依赖项放在哪里都没有关系(但对其他工具可能很重要)。这就是为什么文档看起来令人困惑的原因。
运行需要依赖项,开发只需要 devDependencies