package.json文件里的dependencies和devDependencies有什么区别吗?
【摘要】 从名字我们就可以看出,`devDependencies`是用于在开发环境下依赖的模块,而`dependencies`就是无论开发环境还是生产环境都需要的依赖模块
在开发Angular项目的时候,需要在package.json文件里标记本项目需要哪些npm依赖包,其中就会有dependencies
和devDependencies
两个字段;那么它们分别代表什么,又有什么区别呢?
"dependencies": {
"@angular/common": "2.0.0",
"@angular/compiler": "2.0.0",
"@angular/core": "2.0.0",
"@angular/forms": "2.0.0",
"@angular/http": "2.0.0",
"@angular/platform-browser": "2.0.0",
"@angular/platform-browser-dynamic": "2.0.0",
"@angular/router": "3.0.0",
"@angular/upgrade": "2.0.0",
"core-js": "^2.4.1",
"reflect-metadata": "^0.1.3",
"rxjs": "5.0.0-beta.12",
"systemjs": "0.19.27",
"zone.js": "^0.6.23",
"angular2-in-memory-web-api": "0.0.20",
"bootstrap": "^3.3.6"
},
"devDependencies": {
"concurrently": "^2.2.0",
"lite-server": "^2.2.2",
"typescript": "^2.3.4",
"typings": "^1.3.2"
}
从名字我们就可以看出,devDependencies
是用于在开发环境下依赖的模块,而dependencies
就是无论开发环境还是生产环境都需要的依赖模块。
举个上面中代码的栗子,依赖concurrently,lite-server,typescript和typings只是我们在开发中需要使用的包,上线以后项目的运行就不需要了,因此就放在devDependencies
依赖里;而dependencies
里那些依赖:angular/XXXX,core-js,reflect-metadata,rxjs,systemjs,zone.js,angular2-in-memory-web-api,bootstrap 则是我们整个项目运行时候就需要的,因此放在dependencies
里。
而当团队里其他人clone这个项目进行开发调试的时候,就可以通过npm install
操作一键安装这两个目录下所有的依赖,而不用去一行行找都在文件中引用了哪些依赖。
注:如果其他人输入的是npm install --production
指令,那么就只会安装dependencies 目录下的依赖;这个操作比较少见,一般在一些服务端自动构建的过程中或者在一些特殊的需求下,会用到这个指令。
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)