升级 Vue CLI 项目到 Node 18+ 版本,解决 Node 14 时代的幽灵依赖问题。
本 skill 已在 Node 22 下验证通过。当前项目状态:
node -v
如果已是 18+,直接跳到 Step 4 验证。
# 使用 nvm 切换(需要先安装 nvm)
nvm install 22
nvm use 22
> 注意:pnpm workspace 下请确保在正确的子项目目录执行。
# Windows PowerShell
Remove-Item -Recurse -Force node_modules
# Linux/macOS 或 Git Bash
rm -rf node_modules
# 重新安装
pnpm install
确保 babel.config.js 包含以下配置(Vue CLI 项目标准写法):
const plugins = [
'@babel/plugin-syntax-dynamic-import',
'@babel/plugin-proposal-object-rest-spread',
[
'component',
{
'libraryName': 'element-ui',
'styleLibraryName': 'theme-chalk'
}
]
]
if (process.env['NODE_ENV'] === 'development') {
plugins.push('dynamic-import-node')
}
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset',
[
'@babel/preset-env',
{
'modules': false,
'corejs': '3',
'useBuiltIns': 'entry',
'targets': {
'browsers': ['> 1%', 'last 3 versions', 'not ie <= 8']
}
}
]
],
plugins
}
pnpm run build:prod
验证通过标准:
Cannot find module 错误
本项目(integratedServicesIndex)已验证通过:
18
@babel/plugin-proposal-object-rest-spread 已安装
eslint-loader@2.2.1 已安装
qs@^6.15.1 已安装
babel.config.js 已就绪
直接运行 pnpm run build:prod 即可验证。
如遇问题:
pnpm-lock.yaml 是否正确生成(pnpm install 后)
babel.config.js 语法无误
ls node_modules/.bin/eslint-loader
git checkout -- babel.config.js package.json pnpm-lock.yaml
共 1 个版本