最近安装一些npm包的时候,有些需要添加--save-dev
,二有些需要添加--save
,而有些呢则直接npm install
。这些到底有什么区别呢?
举个例子,我用vue-cli构建了一个webpack项目,项目目录下有个package.json
文件,我们打开这个文件看一下。
可以看到文件中有dependencies
和devDependencies
这两个字段。通过网上查阅资料,知道了devDependencies
里的是用于开发环境的,即我们平时开发时用的,dependencies
里的是用于生产环境的,即我们开发完上线时需要的。
好,接下来我们就来说一下npm install
不同的结果。
假设我们有个npm包名字叫hello吧。
- npm install hello
- 会把hello包安装到node_modules目录中
- 不会修改package.json
- 之后运行npm install命令时,不会自动安装hello
- npm install hello –save
- 会把hello包安装到node_modules目录中
- 会在package.json的dependencies属性下添加hello
- 之后运行npm install命令时,会自动安装hello到node_modules目录中
- npm install hello –save-dev
- 会把hello包安装到node_modules目录中
- 会在package.json的devDependencies属性下添加hello
- 之后运行npm install命令时,会自动安装hello到node_modules目录中
总结
只是开发时需要用到的就--save-dev
,比如eslint
等,而上线后仍然需要用到的就--save
,比如jquery
等。