简单整理:

一、关键词解释

devDependencies用于本地环境开发

dependencies用户发布环境

devDependencies是只会在开发环境下依赖的模块,生产环境不会被打入包内。通过NODE_ENV=developementNODE_ENV=production指定开发还是生产环境。 而dependencies依赖的包不仅开发环境能使用,生产环境也能使用。其实这句话是重点,按照这个观念很容易决定安装模块时是使用--save还是--save-dev

二、基本用法:

-P 相当于 --save-prod, 添加dependencies 里面所有的包。在 -D -O 不存在时,-P 就是默认值 。 也可以写全称: --save-production
-S 相当于 --save; 添加dependencies 里面所有的包。
-D 相当于 --save-dev; 添加devDependencies 里面所有的包,
-O 相当于 --save-optional, 添加在 optionalDependencies 里面的包,
--no-save: 阻止保存记录在dependencies 中。

官方文档:https://docs.npmjs.com/cli/install

三、案例:

dependencies

装载:npm install vue  --save-prod

卸载:npm uninstall vue  --prod

devDependencies

装载:npm install vue  --save-dev

卸载:npm uninstall vue  --dev

测试发现你不能将同一个包(例如vue),同时安装到dependencies和devDependencies 里面,他们是互斥的,只能二选一。

这反证了:dependencies依赖的包不仅开发环境能使用,生产环境也能使用

四 、 疑问解决

  如果你不知道某个包(或叫模块、依赖、组件)是用于开发环境还是生产环境,那么建议1 百度一下,弄清楚是此包用于生产还是开发;2百度没找到答案, 先放到devDependencies,然后 npm run build ,然后测试运行dist中打包好的程序看是否报错。3 若dist没问题,但你还是不放心,放到dependencies保准万无一失,只是生产脚本稍微大的些。

五、注意

npm 的配置文件 package.json 里可以支持设置一些命令(scripts),然后提供简洁的方式执行这个命令,就是 npm run xxx。我们把 开发中需要执行的命令在 package.json 的 script 中定义成 dev,就可以直接通过 npm run dev 触发执行了。例如"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",  特别注意:npm run dev 的dev 与 npm install  模块名 --save-dev   的dev不是一个东西,一点关系都没有。

npm install  模块名 --save-dev   ,这里的dev默认特指 devDependencies

npm run dev 的dev 是自定义的,这里dev可以改成任意名称,为了避免混淆建议改成其他名称 例如  mydev 等。

转载一https://blog.csdn.net/zDeer520/article/details/73431295

不再纠结devDependencies与dependencies

置顶 2017年06月18日 15:08:09 zDeer的前端之旅 阅读数:9080 标签: devDependenciesdependenciesnpm

  以前一直在纠结一个npm安装的包依赖管理的问题。是这样的:我们在使用npm install 安装模块或插件的时候,有两种命令把他们写入到 package.json 文件里面去,他们是:--save-dev或--save

  首先需要说明的是Dependencies一词的中文意思是依赖和附属的意思,而dev则是develop(开发)的简写。所以它们的区别在 package.json 文件里面体现出来的就是,使用 --save-dev 安装的 插件,被写入到 devDependencies 域里面去,而使用 --save 安装的插件,则是被写入到 dependencies 区块里面去。

  那 package.json 文件里面的 devDependencies  和 dependencies 对象有什么区别呢?devDependencies  里面的插件只用于开发环境(例如测试代码依赖的包或构建工具的包),不用于生产环境,而 dependencies  是需要发布到生产环境的(src项目或组件代码中依赖到的)。比如我们写一个项目要依赖于jQuery、vue,没有这个包的依赖运行就会报错,这时候就把这个依赖写入dependencies ;而我们使用的一些构建工具比如glup、webpack这些只是在开发中使用的包,上线以后就和他们没关系了,所以将它写入devDependencies。

转载二:https://blog.csdn.net/achenyuan/article/details/80899783?utm_source=copy

网上统一的观念是

  • devDependencies用于本地环境开发时候。
  • dependencies用户发布环境

其实看名字我也知道是这个意思,我觉得没解释情况。
devDependencies是只会在开发环境下依赖的模块,生产环境不会被打入包内。通过NODE_ENV=developementNODE_ENV=production指定开发还是生产环境。
dependencies依赖的包不仅开发环境能使用,生产环境也能使用。其实这句话是重点,按照这个观念很容易决定安装模块时是使用--save还是--save-dev

转载三:https://www.cnblogs.com/fewenjing/p/5892377.html

dependencies与devDependencies的区别

npm install在安装node模块时,有两种命令参数可以把它们的信息写入package.json文件:

–save
–save-dev

但它的文档里1,只提到一个小区别,–save会把依赖包名称添加到package.json文件dependencies键下,–save-dev则添加到package.json文件devDependencies键下,譬如:

{"name": "yo","version": "0.0.0","dependencies": {},"devDependencies": {"grunt": "~0.4.1","grunt-contrib-copy": "~0.4.1","grunt-contrib-concat": "~0.3.0","grunt-contrib-uglify": "~0.2.0","grunt-contrib-compass": "~0.7.0","grunt-contrib-jshint": "~0.7.0","grunt-contrib-cssmin": "~0.7.0",}
}

dependencies与devDependencies的区别:devDependencies下列出的模块,是我们开发时用的依赖项,像一些进行单元测试之类的包,比如grunt-contrib-uglify,我们用它混淆js文件,它们不会被部署到生产环境。dependencies下的模块,则是我们生产环境中需要的依赖,即正常运行该包时所需要的依赖项。

如果你将包下载下来在包的根目录里运行,执行如下命令,默认会安装两种依赖

npm install

如果你只是单纯的使用这个包而不需要进行一些改动测试之类的,只安装dependencies而不安装devDependencies。执行:

npm install --production

通过“npm install packagename”进行安装,只会安装dependencies

npm install packagename

如需安装devDependencies,执行:

npm install packagename --dev  

转载四

回顾 npm install 命令

最近在写Node程序的时候,突然对 npm install 的-save和-save-dev 这两个参数的使用比较混乱。其实博主在这之前对这两个参数的理解也是模糊的,各种查资料和实践后对它们之间的异同点略有理解。遂写下这篇文章避免自己忘记,同时也给node猿友一点指引。

我们在使用 npm install 安装模块的模块的时候 ,一般会使用下面这几种命令形式:

1
2
3
4
5
6
7
npm install moduleName # 安装模块到项目目录下
npm install -g moduleName # -g 的意思是将模块安装到全局,具体安装到磁盘哪个位置,要看 npm config prefix 的位置。
npm install -save moduleName # -save 的意思是将模块安装到项目目录下,并在package文件的dependencies节点写入依赖。
npm install -save-dev moduleName # -save-dev 的意思是将模块安装到项目目录下,并在package文件的devDependencies节点写入依赖。

那么问题来了,在项目中我们应该使用四个命令中的哪个呢?这个就要视情况而定了。下面对这四个命令进行对比,看完后你就不再这么问了。

npm install moduleName 命令

1. 安装模块到项目node_modules目录下。
2. 不会将模块依赖写入devDependencies或dependencies 节点。
3. 运行 npm install 初始化项目时不会下载模块。

npm install -g moduleName 命令

1. 安装模块到全局,不会在项目node_modules目录中保存模块包。
2. 不会将模块依赖写入devDependencies或dependencies 节点。
3. 运行 npm install 初始化项目时不会下载模块。

npm install -save moduleName 命令

1. 安装模块到项目node_modules目录下。
2. 会将模块依赖写入dependencies 节点。
3. 运行 npm install 初始化项目时,会将模块下载到项目目录下。
4. 运行npm install --production或者注明NODE_ENV变量值为production时,自动下载模块到node_modules目录中。

npm install -save-dev moduleName 命令

1. 安装模块到项目node_modules目录下。
2. 会将模块依赖写入devDependencies 节点。
3. 运行 npm install 初始化项目时,会将模块下载到项目目录下。
4. 运行npm install --production或者注明NODE_ENV变量值为production时,不会自动下载模块到node_modules目录中。

总结

devDependencies 节点下的模块是我们在开发时需要用的,比如项目中使用的 gulp ,压缩css、js的模块。这些模块在我们的项目部署后是不需要的,所以我们可以使用 -save-dev 的形式安装。像 express 这些模块是项目运行必备的,应该安装在 dependencies 节点下,所以我们应该使用 -save 的形式安装。

相关文档:https://docs.npmjs.com/files/package.json

转载于:https://www.cnblogs.com/hao-1234-1234/p/9718604.html

devDependencies与dependencies (转载)相关推荐

  1. devDependencies和dependencies的区别

    我们在使用npm install 安装模块或插件的时候,有两种命令把他们写入到 package.json 文件里面去,比如: --save-dev --save 在 package.json 文件里面 ...

  2. 不再纠结devDependencies与dependencies

    以前一直在纠结一个npm安装的包依赖管理的问题.是这样的: 我们在使用npm install 安装模块或插件的时候,有两种命令把他们写入到 package.json 文件里面去,他们是: --save ...

  3. devDependencies 和 dependencies

    devDependencies -- 本地开发环境使用的依赖 npm install xxx@1.0.0 --save-dev npm install xxx@1.0.0 -D NODE_ENV = ...

  4. devDependencies与dependencies如何理解

    我们在使用npm install 安装模块或插件的时候,有两种命令把他们写入到 package.json 文件里面去,他们是: –save-dev 安装的 插件,被写入到 devDependencie ...

  5. devDependencies和dependencies有什么区别呢

    在使用npm安装一些包时,经常要用到npm install这个命令,而对后面跟着的参数–save和–save-dev经常搞糊涂,那我们来看下这两者到底有啥区别. devDependencies用于本地 ...

  6. devDependencies 和 Dependencies 的区别

    安装的命令区别 npm install react --savenpm install eslint --save-dev 使用场景 如果是自己项目中使用,其实没有什么本质区别,每次执行npm ins ...

  7. devDependencies与dependencies区别

    devDependencies : 命令:npm i xxx --save -dev 同 npm i xxx -D 开发依赖,开发的时候需要运行的辅助的依赖,比如webpack打包工具,babel编译 ...

  8. devDependencies与dependencies

    网上统一的观念是 devDependencies用于本地环境开发时候. dependencies用户发布环境 其实看名字我也知道是这个意思,我觉得没解释情况.  devDependencies是只会在 ...

  9. webpack devDependencies、dependencies的区别

    安装包命令 npm  i(install)  xxx:直接安装在当前文件夹下的node_modules下,但不写入package.json npm  i(install)  xxx  --save(- ...

最新文章

  1. Java项目:个人博客系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)
  2. 修改so_新手向总结:IDA动态调试So的一些坑
  3. 移动开发架构之MVVM模式
  4. 微信分享无响应的解决
  5. 金蝶携手工商银行完成首单数字人民币费用报销业务
  6. oracle嵌套三层循环语句,在存储过程中执行3种oracle循环语句
  7. 如何绘制逻辑图 — 5. 要素的属性:系统与模块
  8. 上周热点回顾(10.8-10.14)
  9. 在GridView的行绑定中应用Animation动画效果
  10. 软件企业通常会犯近视和远视两个错误
  11. 前端开发 AMD 和 CMD 的规范区别
  12. java手机号正则验证(电信、联通、移动、香港)
  13. ARRL在线电台日记(LOTW)申请
  14. [Ansible系列⑦]ansible fact变量
  15. 华三模拟器HCL下载与安装教程
  16. 2021年2月中国编程语言排行榜
  17. [面试日记] 1,时隔五年再次开始面试
  18. windows - 网络流量监控工具
  19. Thinkpad x230 登录黑屏故障排除
  20. 面试前该做哪些准备?

热门文章

  1. c++ 11 多线程处理(1)
  2. (三)Sass和Compass--制作精灵图片
  3. IT精英们!一路走好!
  4. “口碑营销”产品模型推测与分析
  5. 删除Linux的依赖库并进入救援模式恢复
  6. 操作系统(科普章节)
  7. python django项目断点调试
  8. asp.net chart美化+绑定数据--饼图
  9. Android开发之ViewPager滑动页面效果实现(源代码分享)
  10. 开放linux下mysql数据库3306端口