webpack打包的问题

我最近在是使用webpack的时候,有一个疑问,就是我安装依赖的时候,
如果使用npm install --save webpack,会在package.json里的dependencies展示刚刚安装的依赖,这是生产环境需要的依赖
如果使用npm install --save-dev webpack,会在package.json里的devDependencies展示刚刚安装的依赖,这是开发环境需要的依赖
但是如果我使用npm install webpack时,package.json里什么都没有,请问我安装的依赖去哪了,去了生成环境还是开发环境?为什么不显示在package.json里呢?
另:如果一个依赖是生产环境需要,本地开发也需要,那么是两者要分别安装,还是怎么弄?

阅读 3.6k
4 个回答

感觉你的理解偏差了,npm install 后,无论后面有没有--save或者--save-dev,都会安装到node_modules。

  1. 运行npm install 初始化项目时,会将dependencies和devDependencies的模块都下载到项目目录下。
  2. 运行npm install --production或者注明NODE_ENV变量值为production时,--save-dev(devDependencies)的包不会自动下载模块到node_modules目录中,但是--save(dependencies)对应的包会
  3. 本质上,devDependencies里面的是开发时候辅助的脚手架,不参与代码正式运行的,比如autoprefixer,gulp之类的,代码打包后,线上代码是用不到的,但是类似于vue,axios之类的库,线上代码是要依赖这些库执行的,所以要放到dependencies中。
  4. 对于项目需要用到的包,无论是dependencies或者devDependencies,都要加到package.json,因为别的同事拿到你这份代码,他想要运行的话,是要先安装对应的包,而需要的包都记录在了package.json中

你安装的依赖一直都在 node_modules 里面, package.json 只是记录你项目有哪些依赖. 如果依赖是生产环境需要,本地开发也需要, 那你最好是记录在 dependencies 里, 确保用户利益为主. 不管你记录在 dependencies 还是 devDependencies , 在执行 npm install 的时候这些依赖都会被下载到 node_modules 里, 在使用过程中是没有任何区别的.

你确定你没弄错吗 --save 是生产 dependencies --save-dev是开发 devDependencies

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