如何将Bundler的依赖区分为dev dependency和普通dependency?
如何判断第三方包是否属于开发依赖(devDependency)
日常判断可以用这几个方法,准确率很高:
- 看实际调用场景:只要你的线上运行的业务代码里,没有直接
import/require这个包的内容,它仅在本地开发、代码校验、打包编译、单测这些环节才会被用到,就属于dev依赖。典型的比如eslint、prettier这类格式化校验工具,webpack、vite这类打包工具,jest、vitest这类测试框架,还有各类编译转义插件,全部归到dev依赖即可。 - 打包验证:拿不准的时候可以先把包放到devDependency里打生产包,在打包产物里检索该包的相关代码,如果没有对应的引用、实现逻辑,且生产包启动运行没有任何报错,就说明它不需要放到生产依赖里。
- 看官方安装指引:绝大多数工具类包的官方文档,都会明确标注安装方式,如果给出的安装命令带有
-D、--save-dev参数,就说明官方推荐作为开发依赖安装。
补充注意:像axios、lodash、antd这类你直接在业务代码里引入使用、打包时会被打进生产产物的包,必须放到普通dependency中。
内容的提问来源于stack exchange,提问作者user16603435
相关产品推荐
相关产品推荐

