沙滩星空的博客沙滩星空的博客

运行vue老项目报错: error gyp verb `which` failed Error: not found: python2

起因

运行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-sasssass-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-sasssass-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

未经允许不得转载:沙滩星空的博客 » 运行vue老项目报错: error gyp verb `which` failed Error: not found: python2

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址