最近想尝试一下使用Webpack按照网上和书籍上进行Webpack的安装,当执行webpack命令的时候会出现 Cannot find module 'webpack-cli/package.json'。经过检查webpack和webpack-cli都已经安装成功了。但是就是执行webpack命令的时候会出现错误。尝试了很多网上的办法和指导都没有解决这个问题。后来没有办法只能硬着头皮找问题了。
本人使用的是一台Windows7 32位的电脑,由于C盘紧张将node安装在了E盘。
当在控制台输入webpack的时候其实运行的是 node_modules\node_modules\webpack\bin\webpack.js这个文件,他会根据是否安装有webpack-cli或者是webpack-command进行处理,当没有安装其中之一就会告诉你需要下载webpack-cli,如果只有安装webpack-cli就会利用require.resolve获取webpack-cli/package.json的路径,然后根据这个路径加载模块。我的设备的问题就是获取这个文件的路径错误导致webpack命令执行失败,由于不想把时间花在为什么获取文件路径失败原因的问题上决定进行手动设置这个路径由于我的webpack-cli/package.json的路径在E:\nodejs\npm_global_modules\node_modules\node_modules\webpack-cli\package.json"所以设置将获取路径的代码修改为:const pkgPath="E:\\nodejs\\npm_global_modules\\node_modules\\node_modules\\webpack-cli\\package.json"
就可以成功执行了。
对于有些朋友也遇到了这个问题我就在详细的说明一下:
我这里解决的问题是已经安装webpack和webpack-cli但是运行webpack的时候任然显示不能找到webpack-cli的问题。
我的node安装在E盘:
(1)首先找到webpack的实际运行的脚本webpack.js这个文件,我的这个文件的位置在E:\nodejs\npm_global_modules\node_modules\node_modules\webpack\bin\webpack.js
我是全局安装的。
(2)打开这个文件找到pkgPath这变量的位置,一般在文件的152行。
(3)找到webpack-cli的安装位置
我打安装位置在E:\nodejs\npm_global_modules\node_modules\node_modules\webpack-cli
(4)将E:\nodejs\npm_global_modules\node_modules\node_modules\webpack\bin\webpack.js文件(webpack脚本文件)的pkgPath变量的值修改为E:\\nodejs\\npm_global_modules\\node_modules\\node_modules\\webpack-cli\\package.json
注意出现反斜杠的地方需要不全反斜杠
最终的结果如下图红线所示
(5)运行在控制台输出webpack -v未输出错误信息显示版本号即为webpack安装成功. |