Skip to content

干了七八年前端了,还闹不清install和install -D的区别

最近开发个小项目,尝试富文本插件的时候换了一个又一个,不断地install / uninstall,旁边的兄弟问我,为啥你不安装试验包?

npm安装插件一般有几个命令: 以下是将选中部分的内容整理成的表格形式:

命令描述
npm install安装 [package.json](file://C:\Users\maple\Documents\MyNote\node_modules@algolia\client-common\package.json) 中全部的插件。
npm install xxx安装 xxx 插件到项目中,并将该包添加到 dependencies 列表。
npm install xxx -D(或--save-dev)安装 xxx 插件到项目中,并将该包添加到 devDependencies 列表。
npm install xxx --save-optional将该包添加到 optionalDependencies 列表。
npm install xxx --no-save安装 xxx 插件,但不将 xxx 添加到 [package.json](file://C:\Users\maple\Documents\MyNote\node_modules@algolia\client-common\package.json) 中。
npm uninstall xxx卸载 xxx 插件。

install xxx

安装指定名称的包,并且默认情况下会将该包添加到dependencies列表中。

就是说包是项目正常运行所必需的,无论是在开发环境、测试环境还是生产环境中都需要它。

install xxx -D 或 install xxx --save-dev

安装指定名称的包,将该包添加到devDependencies列表中。

这些包只在开发或构建过程中需要用到,而在生产环境中不需要。例如,测试库(如Jest)或构建工具(如Webpack)就属于这一类。

install xxx --save-optional

安装指定名称的包,将其添加到optionalDependencies列表中。

这些包是可选的,它们可能会在某些情况下被用到,但并不需要它们。尤其是在多平台开发的时候,Mac上要用到的插件可能在Windows上用不到。

install xxx --no-save

安装包但不添加到package.json文件中。

适用于想临时安装一个包用于试验,而不希望它影响你的项目配置。

速记

  • 常规的就用install
  • 开发用的就用install -D
  • 多平台的时候用install --save-optional
  • 临时试验用install --no-save