--save-dev 与 --save区别

最近安装一些npm包的时候,有些需要添加--save-dev,二有些需要添加--save,而有些呢则直接npm install。这些到底有什么区别呢?

举个例子,我用vue-cli构建了一个webpack项目,项目目录下有个package.json文件,我们打开这个文件看一下。
可以看到文件中有dependenciesdevDependencies这两个字段。通过网上查阅资料,知道了devDependencies里的是用于开发环境的,即我们平时开发时用的,dependencies里的是用于生产环境的,即我们开发完上线时需要的。

好,接下来我们就来说一下npm install不同的结果。
假设我们有个npm包名字叫hello吧。

  1. npm install hello
  • 会把hello包安装到node_modules目录中
  • 不会修改package.json
  • 之后运行npm install命令时,不会自动安装hello
  1. npm install hello –save
  • 会把hello包安装到node_modules目录中
  • 会在package.json的dependencies属性下添加hello
  • 之后运行npm install命令时,会自动安装hello到node_modules目录中
  1. npm install hello –save-dev
  • 会把hello包安装到node_modules目录中
  • 会在package.json的devDependencies属性下添加hello
  • 之后运行npm install命令时,会自动安装hello到node_modules目录中

总结

只是开发时需要用到的就--save-dev,比如eslint等,而上线后仍然需要用到的就--save,比如jquery等。