package.json文件里的dependencies和devDependencies有什么区别

【摘要】 从名字我们就可以看出,`devDependencies`是用于在开发环境下依赖的模块,而`dependencies`就是无论开发环境还是生产环境都需要的依赖模块

在开发Angular项目的时候,需要在package.json文件里标记本项目需要哪些npm依赖包,其中就会有dependenciesdevDependencies两个字段;那么它们分别代表什么,又有什么区别呢?

"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 目录下的依赖;这个操作比较少见,一般在一些服务端自动构建的过程中或者在一些特殊的需求下,会用到这个指令。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Node.js中,package.json文件通常用于描述一个模块或应用程序的元数据信息,例如名称、版本、作者、许可证等。除此之外,package.json文件还包含了两个重要的属性:dependenciesdevDependencies。 1. dependencies dependencies属性是一个对象,用于指定当前模块或应用程序所依赖的其他模块。这些模块通常被称为生产环境依赖项,因为它们是在生产环境中运行时必需的。 例如,如果你的应用程序依赖于Express框架,则可以在dependencies属性中添加如下条目: ``` "dependencies": { "express": "^4.17.1" } ``` 这的"^4.17.1"表示使用的是Express的4.x.x版本,其中的^符号表示可以接受4.x.x版本的任何更新版本。 当你使用npm install命令安装依赖项时,npm会自动下载并安装dependencies属性中指定的所有模块。 2. devDependencies devDependencies属性也是一个对象,用于指定当前模块或应用程序开发过程中所需要的其他模块。这些模块通常被称为开发环境依赖项,因为它们只在开发过程中使用,不会在生产环境中运行。 例如,如果你的应用程序使用了Jest测试框架,则可以在devDependencies属性中添加如下条目: ``` "devDependencies": { "jest": "^26.6.3" } ``` 与dependencies属性类似,当你使用npm install命令安装依赖项时,npm会自动下载并安装devDependencies属性中指定的所有模块。但是,如果你使用npm install --production命令来安装依赖项,则不会安装devDependencies属性中指定的模块。 总结 在package.json文件中,dependencies属性用于指定生产环境依赖项,而devDependencies属性用于指定开发环境依赖项。这两个属性都是必需的,因为它们能够确保你的应用程序在不同环境中都能够正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值