全局安装与本地安装的区别:webpack已全局安装,为何还是需要本地安装?

我使用npm list -g --depth=0查看了我的npm全局安装列表,确认webpack/webpack-dev-server/gulp等已经全局安装。但是当我在某个项目目录中运行时,还是必须依赖本地目录node_modules下的webpack文件夹,我做了试验,如果将"node_modules/webpack"改名,webpack运行就报错。
图片描述

但是,gulp就不存在这样的问题,全局安装后,到处可用。
为何有这个区别?

阅读 18.6k
2 个回答

本地安装require不到全局的包,这是node的机制问题,可以运行 npm link webpack将全局链接到本地来

更多node相关技巧 https://uedsky.com/2016-09/el...

gulp 也不是完全是全局安装,一般全局安装的是命令
注意看 Gulp get started

npm install -g gulp-cli # 这个安装会 提供一个全局的命令 gulp,这样才能在项目目录里直接选择 gulp,其它目录执行会说找不到gulpfile
npm install --save-dev gulp # 安装到项目里,这样gulp运行时会require这个包,而且这两步都是必须的。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题