我安装了gulp(全局),它看起来很有效,因为它运行了这段代码:
├── tildify@0.2.0
├── interpret@0.3.5
├── pretty-hrtime@0.2.1
├── deprecated@0.0.1
├── archy@0.0.2
├── minimist@0.2.0
├── semver@2.3.2
├── orchestrator@0.3.7 (stream-consume@0.1.0, sequencify@0.0.7, end-of-stream@0.1.5)
├── chalk@0.5.1 (escape-string-regexp@1.0.1, ansi-styles@1.1.0, supports-color@0.2.0, strip-ansi@0.3.0, has-ansi@0.1.0)
├── gulp-util@2.2.20 (lodash._reinterpolate@2.4.1, dateformat@1.0.8-1.2.3, vinyl@0.2.3, through2@0.5.1, multipipe@0.1.1, lodash.template@2.4.1)
├── liftoff@0.12.0 (extend@1.2.1, minimist@0.1.0, resolve@0.7.4, findup-sync@0.1.3)
└── vinyl-fs@0.3.5 (graceful-fs@3.0.2, lodash@2.4.1, mkdirp@0.5.0, strip-bom@0.3.1, vinyl@0.2.3, through2@0.5.1, glob-watcher@0.0.6, glob-stream@3.1.14)
但是当我输入gulp
时,它会显示-bash: gulp: command not found
知道发生了什么事吗?
答案 0 :(得分:159)
事实证明npm安装在错误的目录中,因此我必须通过运行此代码来更改“npm config prefix”:
npm config set prefix /usr/local
然后我全局重新安装gulp(使用-g param)并且它正常工作。
这篇文章是我找到解决方案的地方:http://webbb.be/blog/command-not-found-node-npm
答案 1 :(得分:52)
不确定为什么这个问题被低估了,但我遇到了同样的问题,并且按照推荐的博客文章解决了这个问题。我应该补充的一点是,就我而言,一旦我跑了:
npm config set prefix /usr/local
我确认npm root -g
指向/usr/local/lib/node_modules/npm
,但为了在gulp
中安装/usr/local/lib/node_modules
,我必须使用sudo
:
sudo npm install gulp -g
答案 2 :(得分:21)
如果您正在使用tcsh
(这是我在Mac OS X上的默认shell),您可能只需在安装完成后立即在shell中键入rehash
:
npm install -g gulp
紧接着是:
rehash
否则,如果这是您第一次安装gulp
,那么您的shell可能无法识别安装了新的可执行文件 - 因此您需要启动一个新shell,或者键入rehash
in当前的shell。
(对于您全局安装的每个命令,这基本上都是一次性的。)
答案 3 :(得分:15)
我意识到这是一个老线程,但对于Future-Me和后代,我想我应该在运行npm作为sudo"周围加上我的2美分。讨论。 免责声明:我不使用Windows。这些步骤仅在非Windows机器上进行了验证,包括虚拟和物理。
您可以通过将权限更改为npm的默认目录来避免使用sudo。
sudo
npm config get prefix
/usr/local
/usr
或/Users/YOURUSERNAME/node_modules
或/Something/Else/FishyLooking
npm config set prefix /usr/local
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
现在,您应该可以在没有npm <whatever>
的情况下运行sudo
。 注意:您可能需要重新启动终端才能使这些更改生效。
答案 4 :(得分:5)
我有类似的问题我做了以下步骤并且它工作。转到mac终端并执行命令,
1.npm config set prefix / usr / local
2.sudo chown -R $(whoami)$(npm config get prefix)/ {lib / node_modules,bin,share}
这两个命令会将npm路径设置为正确,您不再需要在npm中使用sudo。 接下来卸载gulp
npm uninstall gulp
在没有sudo的情况下再次安装gulp, npm install gulp -g
这应该有用!!
答案 5 :(得分:4)
我在安装后遇到“未找到命令”时出现此问题,但我已安装到/ usr / local中,如上面的解决方案中所述。
我的问题似乎是由于我使用sudo运行安装。我做了以下。
答案 6 :(得分:3)
您需要执行此操作npm install --global gulp
。它适用于我,我也有这个问题。这是因为您没有全局安装此软件包。
答案 7 :(得分:1)
如果您使用的是Mac,请运行使用超级用户权限
sudo npm install gulp-cli --global
要检查是否已安装,请运行
gulp -v
CLI版本:2.2.0(输出)
本地版本:未知
答案 8 :(得分:0)
在我的情况下,在npm安装之前添加 sudo 解决了 gulp命令未找到问题
sudo npm install
答案 9 :(得分:0)
如果您想保留前缀不变,只需将其bin目录导出到PATH变量即可:
export PATH=$HOME/your-path/bin:$PATH
我将此行添加到$ HOME / .profile并获取了它。
将前缀设置为/usr/local
使您可以使用sudo
,因此我希望将其放在用户目录中。您可以使用npm prefix -g
检查前缀。
答案 10 :(得分:0)
我在Win10上使用来自上面和其他地方的答案进行了这项工作。在这里发布给他人并让我未来。
我按照这里的说明进行操作:https://gulpjs.com/docs/en/getting-started/quick-start,但是在键入gulp --version后的最后一步,我收到消息-bash:gulp:命令未找到
要解决此问题:
此外,出于以下原因,发现以下内容是为什么不全局安装gulp以及如何将其删除(不过不确定是否建议这样做):
答案 11 :(得分:0)
在公司代理后面,全局命令通常不起作用,因此您可以在本地安装 gulp 的地方运行命令。