package.json -- 依赖管理 博客分类: nodejs
程序员文章站
2024-02-09 21:16:34
...
参考:https://segmentfault.com/a/1190000009927946
dependencies
项目中使用到的包,但不包括测试所使用的包
devDependencies
主要是在测试时使用的包,也包括一些代码编译的包,比如将coffee-script编译为javascript。也就是说在仅仅使用该项目的时候(而不进行测试等环节),不需要安装的包可以放在devDependencies中
peerDependencies
如果改项目需要指明一些有协作关系的包的版本时,使用peerDependencies。这里使用了协作,而不是依赖,是我个人的理解。peerDependencies并不是必须安装的包,但如果一旦要安装,就要符合要求。比如react-dom的package.json中有如下的描述:
"peerDependencies": {
"react": "^15.6.1"
},
peerDependencies至少打消了一些顾虑,比如react生态中用到的一些包在升级的时候会不会不匹配?
optionalDependencies
如果有一些依赖包即使安装失败,项目仍然能够运行或者希望npm继续运行,就可以使用optionalDependencies。另外optionalDependencies会覆盖dependencies中的同名依赖包,所以不要在两个地方都写。
bundledDependencies/bundleDependencies
如果在打包发布的使用希望一些依赖包也出现在最终的包里,那么可以将包的名字放在bundledDependencies,bundledDependencies的值是一个字符串数组,如:
"name": "awesome-web-framework",
"version": "1.0.0",
"bundledDependencies": [
'renderized', 'super-streams'
]
npm pack会将renderized 和super-streams放入生成的包awesome-web-framework-1.0.0.tgz中,并且在npm install awesome-web-framework-1.0.0.tgz时,renderized 和super-streams也会被一同安装。
dependencies
项目中使用到的包,但不包括测试所使用的包
devDependencies
主要是在测试时使用的包,也包括一些代码编译的包,比如将coffee-script编译为javascript。也就是说在仅仅使用该项目的时候(而不进行测试等环节),不需要安装的包可以放在devDependencies中
peerDependencies
如果改项目需要指明一些有协作关系的包的版本时,使用peerDependencies。这里使用了协作,而不是依赖,是我个人的理解。peerDependencies并不是必须安装的包,但如果一旦要安装,就要符合要求。比如react-dom的package.json中有如下的描述:
"peerDependencies": {
"react": "^15.6.1"
},
peerDependencies至少打消了一些顾虑,比如react生态中用到的一些包在升级的时候会不会不匹配?
optionalDependencies
如果有一些依赖包即使安装失败,项目仍然能够运行或者希望npm继续运行,就可以使用optionalDependencies。另外optionalDependencies会覆盖dependencies中的同名依赖包,所以不要在两个地方都写。
bundledDependencies/bundleDependencies
如果在打包发布的使用希望一些依赖包也出现在最终的包里,那么可以将包的名字放在bundledDependencies,bundledDependencies的值是一个字符串数组,如:
"name": "awesome-web-framework",
"version": "1.0.0",
"bundledDependencies": [
'renderized', 'super-streams'
]
npm pack会将renderized 和super-streams放入生成的包awesome-web-framework-1.0.0.tgz中,并且在npm install awesome-web-framework-1.0.0.tgz时,renderized 和super-streams也会被一同安装。
推荐阅读
-
nodejs的发布时间说明 博客分类: nodejs nodejs
-
package.json -- 依赖管理 博客分类: nodejs
-
npm常用命令 博客分类: nodejs
-
【转贴】Subversion权限详解 博客分类: 开发工具 subversionSVN配置管理防火墙项目管理
-
关于php cron任务管理的实现假想 博客分类: vb2005xu发发牢骚vb2005xu自己动手系列FleaPHP/QEEPHP 资料 php脚本
-
Facebook 如何发布代码 博客分类: 项目管理 facebook工作互联网svngit
-
关于php cron任务管理的实现假想 博客分类: vb2005xu发发牢骚vb2005xu自己动手系列FleaPHP/QEEPHP 资料 php脚本
-
Facebook 如何发布代码 博客分类: 项目管理 facebook工作互联网svngit
-
SQL SERVER——解决会话等待产生的系统问题 博客分类: SQL SERVER 数据库sql server运维管理性能优化
-
spring 控制反转与依赖注入原理-学习笔记 博客分类: spring-->>备忘笔记AOPIOC springAOPIOC控制反转依赖注入