【Angular4学习】npm 安装参数中的 --save-dev 含义 + package.json的依赖关系说明
关于 - -save-dev参数
有些 node.js 的包安装的时候都加上 –save-dev 参数,这参数是做什么的,加和不加有什么区别呢?
> npm install xxx --save-dev
解释
当你为你的模块安装一个依赖模块时,正常情况下你得先安装他们(在模块根目录下npm install module-name),然后连同版本号手动将他们添加到模块配置文件package.json中的依赖里(dependencies)。
–save和–save-dev 可以省掉你手动修改package.json文件的步骤。
自动把模块和版本号添加到dependencies部分:
> npm install module-name --save
自动把模块和版本号添加到devdependencies部分:
> npm install module-name --save-dve
这是表面是你能看到的变化。
至于配置文件区分这俩部分, 是用于区别开发依赖模块和产品依赖模块, 以我见过的情况来看 devDepandencies主要是配置测试框架, 例如jshint、mocha等。
关于nodejs package.json的依赖关系:
package.json提供了三种依赖关系定义:
1. dependencies
2. peerDependencies
3. devDependencies
解释
dependencies是运行时依赖,devDependencies 是开发时依赖,即devDependencies 下列出的模块,是我们开发时用的。peerDependencies是为插件准备的。比如grunt的插件,里面没有“require(“grunt”)”,所以用dependencies会有问题,需要单独列出。
例子
1.举个例子说明开发依赖:比如你模块用了mocha测试框架,那么你的模块的开发就依赖 mocha,如果别人想为你的模块贡献代码,他就需要安装mocha。但是只是使用你的模块的人,就不需要mocha。
2.再举个例子:比如 我们安装 js的压缩包gulp-uglify 时,我们采用的是 “npm install –save-dev gulp-uglify ”命令安装,就只装进了开发依赖里,因为我们在发布后用不到它,而只是在我们开发才用到它。而dependencies 下的模块,则是我们发布后还需要依赖的模块,譬如像jQuery库或者Angular框架类似的,我们在开发完后后肯定还要依赖它们,否则就运行不了。
3.补充,我们利用生方式打生产的包的时候,就是把开发依赖里面的包都去掉,然后只依赖运行时的包,所以我们生产环境体积就会缩小,线上的访问速度才会有极大的提升。
上一篇: java-package
下一篇: 多线程的学习一:创建多线程的方式