起因
运行3年前的VUE老项目,执行 npm install
报错: error gyp verb
which failed Error: not found: python2
因为项目以前可以正常运行,所以这次报错,不应该是缺少 python
,猜测是依赖组件的版本冲突。
本次 nodejs
的版本为: v18.13.0
查看报错日志:
6233 verbose Windows_NT 10.0.18363
6234 verbose node v18.13.0
6235 verbose npm v8.19.3
6236 error code 1
6237 error path D:\projects\html\xx-app\node_modules\node-sass
6238 error command failed
...
6241 error gyp verb check python checking for Python executable "python2" in the PATH
6241 error gyp verb `which` failed Error: not found: python2
首次error报错提示在 node_modules\node-sass
路径。应该为 node-sass
模块的问题。
解决
删除 package.json
文件中的 node-sass
和 sass-loader
依赖项,并重新安装。
# 安装淘宝镜像
npm install -g mirror-config-china --registry=http://registry.npm.taobao.org
# 安装 node-sass
npm install node-sass --save-dev
# 安装 sass-loader
npm install sass-loader --save-dev
或
# 1. 首先卸载原来安装的node-sass
npm uninstall node-sass
# 2. 然后安装sass,而不要安装`node-sass`
npm add -D sass
# 3. npm run serve 启动
执行命令后,package.json
文件的 devDependencies
项中, node-sass
和 sass-loader
版本已更新。如下所示:
"devDependencies": {
- "node-sass": "^4.0.0",
- "sass-loader": "^7.0.0",
+ "node-sass": "^8.0.0",
+ "sass-loader": "^13.2.0",
},
重新执行 npm install
, 正常无报错。再执行 npm run serve
. 报错:ERROR Error: Cannot find module 'html-webpack-plugin'
执行 npm install html-webpack-plugin --save-dev
, 再执行 npm run serve
报错: ERROR Error: Cannot find module 'webpack/lib/RuleSet'
网上说是 vue 的问题。执行如下。
npm list vue
npm remove -g @vue/cli
npm install -g @vue/cli
还是没用。最后删除 node_modules
目录,删除 package-lock.json
文件。并重新执行 npm install
。如有必要,重装一下依赖项。
npm add -D @dcloudio/uni-cli-i18n @dcloudio/uni-i18n
npm add -D @vue/cli-plugin-babel
npm add -D @vue/cli-service
npm i -D @dcloudio/uni-cli-shared
npm i -D autoprefixer
安装node-sass那些事: https://blog.csdn.net/ccm_2354586864/article/details/126322227
node.js16.13.0版本 对应node-sass sass-loader 可行版本号: https://blog.csdn.net/qq_41287063/article/details/121369239
package-lock.json: https://zhuanlan.zhihu.com/p/401354809