【问题标题】:Command not found找不到命令
【发布时间】:2018-10-19 22:32:12
【问题描述】:

一直在努力启动我的第一个 vue 项目并寻求帮助。 我在我的系统上同时更新了 npm 和 node,但不断遇到同样的问题。

我的步骤:

1.) npm install
终端响应:

npm WARN mbasile@1.0.0 无描述
0.095s 内更新

2.) npm install vue
终端响应:

npm WARN mbasile@1.0.0 无描述 + vue@2.5.16
在 0.951 秒内更新了 1 个包

这就是事情变得时髦的地方?


3.) npm install -g @vue/cli
终端响应:

npm 错误!路径 /Users/mbasile/.npm-global/lib/node_modules//node_modules/.bin
npm 错误!代码 EACCES
npm 错误!错误号 -13
npm 错误!系统调用 rmdir
npm 错误!错误:EACCES:权限被拒绝,rmdir '/Users/mbasile/.npm-global/lib/node_modules//node_modules/.bin'
npm 错误! { 错误:EACCES:权限被拒绝,rmdir '/Users/mbasile/.npm-global/lib/node_modules//node_modules/.bin'
npm 错误!原因:
npm 错误! { 错误:EACCES:权限被拒绝,rmdir '/Users/mbasile/.npm-global/lib/node_modules//node_modules/.bin'
npm 错误!错误号:-13,
npm 错误!代码:'EACCES',
npm 错误!系统调用:'rmdir',
npm 错误!路径:'/Users/mbasile/.npm-global/lib/node_modules//node_modules/.bin' },
npm 错误!堆栈:'错误:EACCES:权限被拒绝,rmdir'/Users/mbasile/.npm-global/lib/node_modules//node_modules/.bin'',
npm 错误!错误号:-13,
npm 错误!代码:'EACCES',
npm 错误!系统调用:'rmdir',
npm 错误!路径:'/Users/mbasile/.npm-global/lib/node_modules//node_modules/.bin' }
npm 错误!
npm 错误!请尝试以 root/管理员身份再次运行此命令。
npm 错误!可以在以下位置找到此运行的完整日志:
npm 错误! /Users/mbasile/.npm/_logs/2018-05-09T17_53_06_030Z-debug.log

因此,鉴于此响应,我运行


4.) sudo npm install -g @vue/cli

终端响应:

/Users/mbasile/.npm-global/bin/vue -> /Users/mbasile/.npm-global/lib/node_modules//bin/vue.js
+ @3.0.0-beta.9
在 6.597 秒内更新了 1 个包

5.) vue create vue-project 终端响应:

-bash: vue: 找不到命令

在这里让我有点困惑和困惑,但任何帮助/响应将不胜感激。

【问题讨论】:

    标签: javascript npm vue.js vue-cli


    【解决方案1】:

    我也遇到了这个问题,找到解决方案有点棘手,所以我将描述帮助我找到解决方案的所有步骤。

    它正在解决 npm 中全局包路径错误或 shell 变量 $PATH 中缺少路径的一般问题。

    修复了 macOS Mojave,但应该适用于所有 UNIX 系统

    首先,在全局安装包后,npm 会显示新包的安装位置。

    $ npm i -g @vue/cli
    /usr/local/Cellar/node/9.5.0/bin/vue -> /usr/local/Cellar/node/9.5.0/lib/node_modules/@vue/cli/bin/vue.js
    

    我们也可以在 npm 配置中查看。

    $ npm config get prefix
    /usr/local/Cellar/node/9.5.0
    

    因此,如果在全局安装后您的终端无法识别命令它可能在您的 shell 变量 $PATH 中丢失。您可以轻松查看。

    $ echo $PATH
    /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
    

    如我们所见,来自 npm config 的路径不在 shell 变量 $PATH 中。

    现在我们有两个选项来修复它。

    1.第一个选项 - 更改 npm 配置

    $ npm config set prefix '/usr/local'
    $ npm config get prefix
    /usr/local
    

    更改配置中的路径后,我们将不得不重新安装所需的包。

    $ npm i -g @vue/cli
    

    2。第二个选项 - 从 npm config 添加路径到 shell $PATH

    $ export PATH=$PATH:/usr/local/Cellar/node/9.5.0
    

    在这种情况下,我们不需要再次安装包。

    无论选择什么选项,我们现在都可以控制一切是否正常。

    $  vue --version
    3.0.5
    

    【讨论】:

    • 感谢这是最准确的解决方案!
    • 对于 brew 安装的节点(因此,npm),前缀当前是 /usr/local/opt/nvm/versions/node/v12.6.0/bin 或 /usr/local/opt/nvm /versions/node/[节点版本]/bin.因此,请尝试将 export PATH=$PATH:/usr/local/opt/nvm/versions/node/v12.6.0/bin 添加到您的 .bashrc、.bash_profile、.zshrc 或 .zprofile(应该位于您的主目录中)。
    【解决方案2】:

    可能是 npm 出了问题

    推荐你,先列出所有全局npm包,看看vue是否安装,命令:npm list -g --depth=0

    如果安装了 vue,但再次出现错误,请尝试使用以下命令删除 vue:npm uninstall -g nameOfPackage

    最后从头开始:npm install -g @vue/cli 并创建新项目,导航到要创建项目的目录并执行:vue create nameOfProject

    【讨论】:

    • 您好 Roli,感谢您的回复,能够追踪到两个标记为 @vue/cli@3.0.0-beta.9vue-cli@2.9.3 的 vue 文件,但即使在使用 -f 时我也无法卸载它们。想知道你以前是否有过这种经历?
    • 嘿,@MattBasile 抱歉来晚了,看看这里docs.npmjs.com/getting-started/uninstalling-global-packages
    • 嗨,Roli,抱歉耽搁了。但是文档很棒,可以卸载,然后重新安装。但是还是无法使用vue create vueProject :(
    • 解决了问题!结果我的 npm/node 和目录我们不在正确的版本上,而且有点不正常。但我能够使用 nvm 更新它们并最终启动我的 vue 项目!感谢您的帮助,Roli 绝对帮助我找到了答案!
    • 很高兴听到您找到解决方案
    【解决方案3】:

    你想做什么?

    npm install -g @vue/cli

    这是您应该在终端上运行以全局 (-g) 安装 vue 命令行界面的命令。 之后你可以做vue create vue-project

    【讨论】:

    • 嗨,Emils,对不起,我的错字,但是一直在尝试 npm install-g @vue/cli 并且仍然无法 vue create vue-project