解决方案: 更新npm >= 6.9 。 亲测可以行,升级注意事项见文章底部。
# 本人是通过升级的node的方式升级npm的,见文章底部。
npm install -g npm@lastest
参考这里:https://github.com/vuejs/vue-cli/pull/5718
网上还有说使用npm install
即可,但我的npm是6.4.1
,亲测不可以…,另外–no-optional参数是不安装可选依赖,肯定更不能解决问题,如下:
在npm install
的命令行输出不难发现问题在于该报错的依赖是一个optional dependency
,从而安装过程中被跳过了,所以导致npm run serve
时候的报错。
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: vue-loader-v16@npm:vue-loader@^16.0.0-beta.7 (node_modules/@vue/cli-service/node_modules/vue-loader-v16):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Invalid dependency type requested: alias
npm WARN @vue/cli-service@4.5.7 requires a peer of vue-template-compiler@^2.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN sass-loader@8.0.2 requires a peer of node-sass@^4.0.0 but none is installed. You must install peer dependencies yourself.
npm WARN sass-loader@8.0.2 requires a peer of fibers@>= 3.1.0 but none is installed. You must install peer dependencies yourself.
这个问题的出现是因为npm5与改依赖不兼容做的一个处理,从而引起的问题,仔细看看上边的参考就知道了。
所以最优(似乎也是唯一的)解决办法就是升级npm版本。
附:升级node与npm的方法
Mac:
# 仅用于mac & linux!!
npm install n -g
# 将 node 切换到最新稳定版
n stable
# 值得注意的是,此时npm的版本已经更新了!!
下面仅升级npm,注意最新的npm已经到7.x.x,但升级到node stable的版本后,其对应的npm是6.14.x
# 仅仅只是将 npm 升级到最新版
npm install npm@lastest -g
# 或指定版本
npm install npm@x.x.x -g
windows 下升级node可以考虑自行下载二进制包,配置环境变量,即手动切换版本。