翻了很多答案,都说dependencies是生产环境依赖,devDependencies是开发环境依赖。问题是:如果我把开发环境依赖装到dependencies里会怎么样??说白了就是到底是什么使他们一个用于生产环境,一个用于开发环境??难道例如webpack在打包的时候会区别对待这两个类型的包吗?例如,我用vue-cli打包项目的时候,如果把less-loader装到dependencies里会怎么样?另外多问一个:vue-cli打包的时候怎么分辨把哪些依赖打包到vendor哪些打包到app里的??
2 回答
喵喵时光机
TA贡献1846条经验 获得超7个赞
npm是本来设计用来服务于Node.js包管理的。在开发一个模块的时候,有些模块需要在发布的时候也被依赖进去,例如:你写了一个proxy的插件,依赖了request模块,这个时候,发布以后如果别人使用必须同时安装request模块,这个就是dependencies还是在开发一个模块的时候,如果这个时候你需要搞一个工具检查你写的代码格式好不好啦,搞点测试用例咯,或者,你要用typescript神马的编译一下咯,用户使用的时候呢,根本不需要这些玩意儿,只要有编译结果代码就够了,这些模块依赖就在devDependenciesPS:在前端开发的时候,一般情况下,都是只在开发环境需要的东西也就是devDependencies,有些人会习惯于把前端需要的东西放在dependencies,如此而已。你直接npminstall,会把两种依赖一并安装,所以更加无所谓了。
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
打包生产环境资源时,dependencies中的依赖会被打包,而devDependencies中的依赖不会被打包。开发环境依赖安装到dependencies,本地和生产环境都没问题,就是文件会大一点而已。生产环境依赖安装到devDependencies,本地没啥问题,生产环境会因为缺少依赖而无法正常运行。
添加回答
举报
0/150
提交
取消