Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
277 views
in Technique[技术] by (71.8m points)

前端项目,把 "devDependencies": 都放到 "dependencies": 里面,会有什么后果?

image.png


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

没什么影响。

这两个字段本意是为了加快项目下载依赖速度的。

比如可能存在单元测试、代码格式化等依赖项插件,这些依赖项对于这个项目本身而言并不是导入的模块,而是在开发时才需要用到,那么对于仅仅想运行一下项目、而非要开发项目的人来说,也必须 npm install 一遍。可你要知道 npm 早期版本可是以安装慢著称的(虽然从 npm 5.0 之后已经有很大改善了)。

所以搞出来了两个字段,如果只是想跑一遍项目,那么 npm install --production 就好了,这样只会下载安装 dependencies 里的依赖项。

但对于现在的前端来说,如果不是工具库的开发者,那么 Webpack 一类的 Bundle 工具基本就是必需品(Vue、React,三大框架中的俩依赖于此)。你说 babel 之类的依赖项,算 dependencies 里吧可你又的确没在项目里 import Babel from 'babel' 过;算 devPependencies 里吧可你真要 npm install --production 不安装它的话项目还是跑不起来。所以这俩字段就变成了一个比较鸡肋的存在。

一般来说的话,在运行阶段依赖的项,放到 dependencies 里;仅仅在开发、测试、编译阶段依赖的项,放到 devPependencies。遵循这个原则就可以了。

P.S. 中文网络上会流传一些错误的说法,比如 Webpack 不会打包 devPependencies 下的代码啊 balabala,对此我的建议是:不要搜中文技术文章,全是错的还互相抄。


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...