前言
我已经使用npm接近两年了, 但对于package.json内的dependencies
和devDependencies
也只是知道什么依赖该放什么部分, 至于为什么放到这个部分, 我不是很了解…
呃, 还是去了解一下.
一、生产环境与开发环境
生产环境可以理解为打包上线后运行的环境, 典型如服务器环境.
开发环境就是在本地搭个脚手架安装上各种依赖跑个本地服务写代码时的环境.
二、dependencies
我的理解是, dependencies
下是生产环境中所必须的依赖包, 比如做一个基于vue
的前端项目, 那么vue
就应当被放在此目录下, 因为上线之后放进服务器这个项目依然需要vue来运作.
而开发环境下需要模拟生产环境开发以确保生产环境下能用, 所以在dependencies
下的依赖是生产环境一定需要的, 开发环境可能需要的.
直接安装就会把依赖安装到这个部分中, 生产依赖装错了地方, 运行项目的时候会出问题.
npm i xxx --save // 不过--save在npm ver5之后可以省略掉
或
npm i xxx -S // --save简写
或
npm i xxx // 直接省略 --save
比如把vue
卸了再运行npm run serve
.
二、devDependencies
devDependencies
下只在是项目开发时需要的依赖, 上线后不需要(当然也可以带着一起交到生产环境, 就是体积大嘛).
比如开发结束后打包所需的工具webpack
, 各种loader
, 用于搭建项目的脚手架, 以及一系列辅助开发的工具.
假设我们是铁匠, 顾客要一块铁锭, 打完这块铁锭之后总不该把自己的锤子也交给顾客, 交付的应当是产品, 而开发依赖可以看作流水线上的生产工具.
如果需要将依赖安装至此部分:
npm i xxx --save-dev
或
npm i xxx -D
总结
–