package.json--dependencies和devDe

2020-08-12  本文已影响0人  神话降临

dependencies:项目依赖。在编码阶段和呈现页面阶段都需要的,也就是说,项目依赖即在开发环境中,又在生产环境中。如js框架vue、页面路由vue-router,各种ui框架antd、element-ui、vant等,-save 自动把模块和版本号添加到dependencies部分
devDependencies: 开发依赖。仅仅在写代码过程中需要使用,比如css预处理器、vue-cli脚手架、eslint之类,-save-dev 自动把模块和版本号添加到devdependencies部分
出于好奇,我有把devDependencies内容移动到dependencies但是没有什么区别

实质区别

如果我们只是单纯的做项目,那么我们可简单地认为生产环境和开发环境做为一种友善的提示,实质没有什么区别;但是,如果在发布npm包的时候,两种环境安装方式是有很大区别的!!!


假设有以下两个模块:
模块A
- devDependencies
  模块B
- dependencies
  模块C
模块D
- devDependencies
  模块E
- dependencies
  模块A
npm install D的时候, 下载的模块为:
- D
- A
- C
当我们下载了模块D的源码,并且在根目录下npm install, 下载的模块为:
- A
- C
- E

所以,在发布npm包的时候,本身dependencies下的模块会作为依赖,一起被下载;devDependencies下面的模块就不会自动下载了;但对于项目而言,npm install 会自动下载devDependencies和dependencies下面的模块。

-S -D区别

-g 是全局安装,不带 -g 会安装在个人文件夹
-S 与 --save 的简写,安装包信息会写入 dependencies 中
-D 与 --save-dev 的简写,安装包写入 devDependencies 中

上一篇下一篇

猜你喜欢

热点阅读