运行 Vue 应用程序时出现错误“vue-cli-service: command not found”

Posted

技术标签:

【中文标题】运行 Vue 应用程序时出现错误“vue-cli-service: command not found”【英文标题】:error "vue-cli-service: command not found" when running a Vue app 【发布时间】:2021-03-20 16:26:48 【问题描述】:

如果我从 Vue 应用程序 (v. 2.6.12) 的根目录执行以下命令

rm -rf node_modules
npm install
npm run serve

我收到以下错误

sh: vue-cli-service: 找不到命令

如果我手动将以下符号链接添加到node_modules/.bin,则不会发生错误

vue-cli-service -> ../@vue/cli-service/bin/vue-cli-service.js

但我不应该手动执行此操作,即如果需要此符号链接,则应在安装 @vue/cli-service 包时创建它。

我使用的是 NPM 版本 7.0.3,并在 package.jsondevDependencies 部分声明了以下内容

"@vue/cli-service": "^4.5.6"

【问题讨论】:

你看看github issue:github.com/vuejs/vue-cli/issues/2404 有时缓存是问题。你能试试 npm run cache clean --force 并删除 package-lock.json 并尝试重新安装。 您能否在另一个仓库中重现此错误并发布链接或将链接发布到带有错误的仓库?这很可能是安装包的问题,​​或者是 npm 的缓存问题。作为替代方案,请尝试使用 yarn,看看效果是否更好。 请分享您的 package.json 文件 【参考方案1】:

您可以通过在 package.json 中使用以下内容来绕过该问题:

"serve": "./node_modules/.bin/vue-cli-service serve"

"serve": "node ./node_modules/@vue/cli-service/bin/vue-cli-service.js serve"

不过,这只是一个临时修复,因为它很可能是 npm 未设置正确路径或 npm 未正确安装二进制文件的问题。尝试升级 npm 和 nvm。请参阅@bravemaster 对 github 问题的评论,因为这包含几个潜在的修复。

【讨论】:

【参考方案2】:

Vue cli 必须使用全局标志安装。

npm install -g vue-cli-service

如果出错,请尝试使用 sudo 的相同命令。

Vue-cli 不应该作为依赖项出现在您的 package.json 中(即使在 dev-dependencies 中也不应该),因为它仅用于从头开始生成新项目,而不是运行/服务器/构建项目所必需的。 (在开发或生产中),因为脚本是在 package.json 的脚本部分中设置的。

【讨论】:

【参考方案3】:

npm install 过去为我工作过,但检查 package.json,它应该大致是这样的:

"scripts": 
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
,
...
"devDependencies": 
    ...
    "@vue/cli-service": "~4.5.0",
    ...
,

【讨论】:

【参考方案4】:

用 Yarn 1.X 替换 NPM 解决了这个问题

【讨论】:

以上是关于运行 Vue 应用程序时出现错误“vue-cli-service: command not found”的主要内容,如果未能解决你的问题,请参考以下文章

vue.js 打包时出现空白页和路径错误

运行 Vue 应用程序时出现错误“vue-cli-service: command not found”

运行测试单元时出现 VUE 错误

运行“vue 升级”时出现“无法解决依赖关系”错误

vue.js - 运行我的项目时出现错误

将 VSCode linting 与 vue-cli linting 同步