dependencies devDependencies区别到底是什么???

翻了很多答案,都说dependencies是生产环境依赖,
devDependencies是开发环境依赖。

问题是:如果我把开发环境依赖装到dependencies里会怎么样??说白了就是到底是什么使他们一个用于生产环境,一个用于开发环境??难道例如webpack在打包的时候会区别对待这两个类型的包吗?
例如,我用vue-cli打包项目的时候,如果把less-loader装到dependencies里会怎么样?

另外多问一个:vue-cli打包的时候怎么分辨把哪些依赖打包到vendor哪些打包到app里的??

阅读 7.8k
2 个回答

npm 是本来设计用来服务于Node.js包管理的。

  1. 在开发一个模块的时候,有些模块需要在发布的时候也被依赖进去, 例如: 你写了一个 proxy的插件,依赖了 request模块,这个时候,发布以后如果别人使用必须同时安装 request 模块,这个就是 dependencies
  2. 还是在开发一个模块的时候, 如果这个时候你需要搞一个工具检查你写的代码格式好不好啦,搞点测试用例咯,或者,你要用typescript神马的编译一下咯, 用户使用的时候呢,根本不需要这些玩意儿,只要有编译结果代码就够了, 这些模块依赖就在 devDependencies

PS: 在前端开发的时候,一般情况下,都是只在开发环境需要的东西也就是 devDependencies,有些人会习惯于把前端需要的东西放在 dependencies,如此而已。 你直接npm install,会把两种依赖一并安装,所以更加无所谓了。

打包生产环境资源时, dependencies 中的依赖会被打包,而 devDependencies 中的依赖不会被打包。

开发环境依赖安装到 dependencies ,本地和生产环境都没问题,就是文件会大一点而已。

生产环境依赖安装到 devDependencies,本地没啥问题,生产环境会因为缺少依赖而无法正常运行。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题