欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【Angular4学习】npm 安装参数中的 --save-dev 含义 + package.json的依赖关系说明

程序员文章站 2022-05-29 10:14:19
...

关于 - -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.补充,我们利用生方式打生产的包的时候,就是把开发依赖里面的包都去掉,然后只依赖运行时的包,所以我们生产环境体积就会缩小,线上的访问速度才会有极大的提升。