Vue2迁移Vue3升级Node.js v18后npm install报错求助
Node.js 18下Vue迁移时npm install报错的解决办法
首选方案:换掉node-sass(彻底解决)
node-sass早就停止维护了,和Node18兼容性极差,还强制依赖Python2,直接换成官方推荐的dart-sass就行,完全兼容scss写法:
- 先卸载旧的node-sass:
npm uninstall node-sass - 安装dart-sass(当前包名为
sass):npm install sass --save-dev - 打开
vue.config.js,如果里面配置了sass-loader的implementation,改成指向sass:module.exports = { css: { loaderOptions: { sass: { implementation: require('sass') } } } }
临时过渡方案:适配node-sass与Node18(不推荐)
如果暂时不想替换依赖,就得解决Python依赖问题:
- 必须安装Python 2.7(node-sass不支持Python3),装好后把Python路径添加到系统环境变量
PATH中 - 给npm指定Python路径:Windows系统执行
npm config set python C:\Python27\python.exe,Mac/Linux执行npm config set python /usr/bin/python2.7 - 安装Node18兼容的node-sass版本(需7.0.0及以上):
npm install node-sass@7.0.0 --save-dev
版本隔离方案:用nvm切换Node版本
如果项目需要在新旧Node版本间来回切换,用nvm最方便:
- 安装nvm后,在项目根目录创建
.nvmrc文件,写入之前能正常运行的旧Node版本号(比如v16.20.0) - 打开终端执行
nvm use,自动切换到指定版本,再运行npm install即可正常执行
关于依赖弃用警告
大量警告是因为旧依赖不支持Node18,建议:
- 优先升级Vue相关依赖(vue-cli、vue-router、vuex等)到支持Node18的版本
- 逐步替换
package.json中已弃用的包,比如将旧版vue-cli替换为@vue/cli-service
内容的提问来源于stack exchange,提问作者Rajasekar Gunasekaran
相关产品推荐
相关产品推荐

