全局和本地安装后未找到本地吞咽

Tro*_*els 4 gulp

我已经gulp在全球范围内安装了

sudo npm install --global gulp-cli
Run Code Online (Sandbox Code Playgroud)

和本地

npm install --save-dev gulp
Run Code Online (Sandbox Code Playgroud)

/usr/local/bin/gulp存在,./node_modules/gulp并且./node_modules/gulp-cli存在。

当我尝试gulp在命令行上运行时,出现常见错误

$ gulp
[00:55:43] Local gulp not found in ~/dev/myProj/play-java-seed
[00:55:43] Try running: npm install gulp
Run Code Online (Sandbox Code Playgroud)

我注意到的一件事是,如果我gulp在某个随机目录 (~/foo) 中运行,则错误消息是在该目录中找不到本地 gulp。如果我从正确的目录 (~/dev/myProj/play-java-seed/ui) 运行它,那么错误会引用父目录。

错误信息中的目录中实际上没有安装gulp;它安装在较低的目录中。

/usr/local/bin/gulp 是具有以下内容的文件的符号链接:

#!/usr/bin/env node

'use strict';

require('../')();
Run Code Online (Sandbox Code Playgroud)

..在该文件中是否正确?看起来很奇怪,但我之前没有仔细看过。

如果操作系统很重要,我运行的是 32 位 Ubuntu 16.04。

devDependencies在我的package.json包括gulpgulp-cli

Tro*_*els 5

Rico Kahler 在他的评论中给出了正确的答案。

当我查看机器时(而不是从我的记忆中消失),我看到 gulp 文件比它应该的目录高一个目录。

错误消息确实有一个线索:它给出了保存 gulpfile 的目录,而不是当前目录。