Command not found with vue-cli

62

在安装vue-cli的依赖时,为什么无法识别vue?

创建项目时的错误信息


1
看起来你需要将 /home/alisha/.local/bin 添加到你的路径中,或者当前终端会话可能没有刷新。尝试重新启动你的终端。 - Derek Pollard
你是否在使用 nvm? - humkins
我发现这个链接非常有帮助: https://stackoverflow.com/questions/50259593/command-not-found/52991711#52991711 - Faith
24个回答

33

谢谢,这应该是正确的答案! - Camilo Casadiego

27

我有一段时间也遇到了同样的问题。

简而言之

 npm install @vue/cli-service --save-dev

根据文档说明,它是一个开发依赖项 https://cli.vuejs.org/guide/#cli-service

CLI Service (@vue/cli-service) 是一个开发依赖项。这是一个npm包,会在每个由@vue/cli创建的项目中本地安装。

起源

我刚刚安装了nodejs,并执行了以下操作:

>> sudo npm install -g @vue/cli@latest

>> vue --version
@vue/cli 4.5.8

问题

问题的表现如下

>> npm run serve
yarn run v1.22.10
$ vue-cli-service build --mode development --watch
/bin/sh: 1: vue-cli-service: not found
error Command failed with exit code 127.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

修复措施:

npm install @vue/cli-service --save-dev

这让我直接看到了另一个错误信息

>> npm run serve
yarn run v1.22.10
$ vue-cli-service build --mode development --watch
ERROR  Error: Cannot find module 'vue-template-compiler/package.json'

我以同样的方式进行了修复。

npm i vue-template-compiler --save-dev

现在它正常工作。


26

在安装时,在yarn前添加sudo

  • yarn global remove @vue/cli
  • sudo yarn global add @vue/cli
  • vue

76
我不敢相信这个回答有38票。永远不要在yarn或npm中使用sudo,这是一个坏主意。 - Nimeshka Srimal
3
我认为他们只是在寻找一个“只是工作”的解决方案。当然,未来他们可能会面临权限问题。 - Oki Erie Rinaldi
1
@NimeshkaSrimal 你能解释一下为什么吗,这样我们就可以学习了。 - Bryan
4
很简单:npm 可以轻松地拉取数百甚至数千个模块。如果您以 root 权限安装这些模块,就可能会不知不觉中安装恶意脚本。如果您使用 sudo,看起来很容易解决问题——而且确实是——如果您完全不关心安全性。不幸的是(令人惊讶的是),许多开发者并不太在意这一点(正如我们可以从这个帖子中看到,至少有一半的评论中建议使用 sudo!)。如果我母亲不介意的话,我也不会在意,但是阅读此帖子的人都是开发人员。他们应该更好地了解这个问题! - grmmgrmm
1
https://medium.com/@ExplosionPills/dont-use-sudo-with-npm-5711d2726aa3 - grmmgrmm

19

安装当前版本而无需永久安装vue-cli.

npx @vue/cli create appname 

10

它显示vue可执行文件位于/home/alisha/.local/bin。因此,可能在您的$PATH中不存在此位置。

如果您提供完整路径,例如:

~/.local/bin/vue create hello-world

您应该能够运行vue命令。您还可以通过运行某些命令查看该目录是否在您的PATH中:

echo $PATH | grep '.local/bin/'

如果它存在的话,你会看到它,否则你可以通过将它放置在你的~/.profile路径中来添加它。

编辑~/.profile文件并在其底部添加以下内容。

PATH="$HOME/.local/bin:$PATH"

希望这能够帮到你!


他们的指导方针很好,对我来说只需要在本地进行更改:~/.npm-global/bin/。 - luisdemarchi
编辑完.profile文件后,运行source ~/.profile命令以使更改生效于当前终端。 - Arash
这是唯一一个真正帮助了我的答案,谢谢。 - Anatoly

6

在生产环境中进行构建时,我遇到了相同的问题。

您需要安装vue-cli。使用以下命令来安装最新版本。

npm install -g @vue/cli@latest

那么

npm install

2
不要使用sudo安装npm中的任何内容,也不要鼓励他人这样做! - grmmgrmm
太棒了!非常感谢你! - Jessica

3

以下操作解决了我的问题:

运行

sudo npm install -g @vue/cli

后,我执行了

sudo nano $HOME/.profile

并粘贴了下面这行代码

export PATH=$PATH:/home/chike/.npm-global/bin

在写完代码后,我按 Ctrl + O, ENTERCtrl + X,然后输入了

vue init webpack myapp


3
可能是因为你电脑上的版本太旧了:
有关以前版本的警告
包名已从vue-cli更改为@vue/cli。如果您全局安装了先前的vue-cli(1.x或2.x)包,则需要使用npm uninstall vue-cli -g 或 yarn global remove vue-cli先卸载它。
您可以在此处找到它:https://cli.vuejs.org/guide/installation.html

3

如果需要的话,可以执行以下命令来解决我的问题(加上sudo):

  • npm i -g vue-cli@2.9.6
  • npm i -g @vue/cli

1
与上面相同:不要使用sudo安装任何npm相关的内容,也不要鼓励他人这样做! - grmmgrmm

3
当您使用cli安装vue时,会获得vue的路径。现在,您可以复制bin文件夹的路径。例如,在我的例子中为/home/sublime/.npm-packages/bin。现在,您可以使用以下命令导出路径。
export PATH=$PATH:/home/sublime/.npm-packages/bin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接