我刚开始做一个Vue项目,由于某种原因,vue-cli-service
不能识别我的实际节点版本。我使用n
来管理我的版本,但是无论我选择哪个版本,我们都认为我使用的是11.13.0版本。我检查了路径中剩余的节点v11可执行文件,但它不在那里。我也没有通过brew安装节点。
我用的是zsh shell的macOS 12。你知道这个旧的节点版本是从哪里来的吗?也许是一些默认的mac设置?
┌ marc in marc/projects/ystagram-fr at 14:48 :git(feature/YST-5-frontend)
└(ystagram-fr) npm run serve
> y-stagram-frontend@0.1.0 serve
> vue-cli-service serve
ERROR You are using Node v11.13.0, but vue-cli-service requires Node ^12.0.0 || >= 14.0.0.
Please upgrade your Node version.
┌ marc in marc/projects/ystagram-fr at 14:49 :git(feature/YST-5-frontend)
└(ystagram-fr) node -v && npm -v
v18.1.0
8.8.0
找到问题了!当我在@vue/cli-service/bin/vue-cli-service.js
文件中记录process
时,我看到它使用来自全局node_modules的节点版本,这是出于某种原因11.13
argv:
[ '/Users/marc/node_modules/node/bin/node',
'/Users/marc/projects/y-stagram-frontend/node_modules/.bin/vue-cli-service',
'serve' ],
我仍然不知道为什么它不默认使用全局节点可执行文件,就像在另一台机器上一样,但是临时修复是运行npm i node@{version >= 14.0}
。