即使安装了npm install -g gulp,也未找到本地gulp安装


88

我试图通过安装gulp

npm install -g gulp

输出似乎是这样的。(我跳过了一些日志)

npm http 304 https://registry.npmjs.org/string_decoder
npm http 304 https://registry.npmjs.org/lodash._htmlescapes
/usr/bin/gulp -> /usr/lib/node_modules/gulp/bin/gulp.js
gulp@3.6.2 /usr/lib/node_modules/gulp
├── tildify@0.2.0
├── pretty-hrtime@0.2.1
├── deprecated@0.0.1
├── archy@0.0.2
├── semver@2.2.1
├── chalk@0.4.0 (has-color@0.1.7, ansi-styles@1.0.0, strip-ansi@0.1.1)
├── orchestrator@0.3.3 (sequencify@0.0.7)
├── liftoff@0.9.8 (extend@1.2.1, minimist@0.0.8, resolve@0.6.3, findup-sync@0.1.3)
├── vinyl-fs@0.1.4 (graceful-fs@2.0.3, map-stream@0.1.0, mkdirp@0.3.5, vinyl@0.2.3, glob-stream@3.1.9, glob-watcher@0.0.6)
└── gulp-util@2.2.14 (lodash._reinterpolate@2.4.1, dateformat@1.0.7-1.2.3, minimist@0.0.8, vinyl@0.2.3, multipipe@0.0.2, through2@0.4.1, lodash.template@2.4.1)

在上面的脚本中,我可以看到/ usr / bin / gulp-> /usr/lib/node_modules/gulp/bin/gulp.js这行,我猜是在bin文件夹中创建了simulink。所以我应该在全球范围内大吃一惊,但我得到了这个错误。

No local gulp install found in /var/www/ksapp

任何想法,为什么我收到此错误。

谢谢

Answers:


103

正如文档中指出的那样,您应该在全球范围内进行安装(这样做),然后将其添加到您的项目开发部门(本地):

npm install gulp --save-dev

1
Gulp是否有可能不将节点文件复制到项目本地文件夹中?据我所知,在全球范围内安装Gulp后,此命令将在本地复制它。
Vladislav Rastrusny 2014年

关键是,即使系统安装已升级,本地安装也可以确保您的项目构建不会中断(全局gulp安装正好在路径中提供二进制命令)。咕unt的情况也一样。
Mangled Deutz 2015年

12
我也讨厌每个项目文件夹中节点模块的完整副本,因此我经常使用npm link gulp --save-dev
PA。

1
很好,但是我没有看到npm link gulp --save-dev--save-dev参数。
Derek Greer

2
@PA再次重申对其他答案的评论npm link gulp是一个坏主意。
sfarbota

35

我遇到了同样的问题。通过创建链接来解决它

npm link gulp

8
就像在另一条评论中所述,这是一个坏主意。诸如gulp或grunt之类的构建系统的设计方式是,特定项目可以依赖于特定构建版本的特定版本(因此,无论状态或已安装的全局系统版本,仍将构建)。试图将全球和本地版本的gulp连接起来,真是令人shooting目
结舌

@MangledDeutz我对将gulp绑定到此特定项目不感兴趣。我只想将其用作自动化一些构建任务的命令行工具。我的gulpfile不会成为git repo的一部分,实际上,如果我在另一台计算机上克隆此repo,我可能会决定甚至不使用gulp来自动执行这些任务,我可能会使用其他工具。我想假装node和npm不存在,而gulp只是/ usr / bin中的一些小程序,它在CWD中寻找gulpfile.js并可以正常工作。如果仅此而已,那么此答案是否合理?
杰克M

@JackM仍然不是一个合理的事情,因为取决于系统范围内安装的gulp版本,它可能与该gulpfile.js配合使用,也可能无法配合(并且“魔术”地无缘无故地中断)...
Mangled Deutz

@MangledDeutz但这对于任何接受文件作为输入的命令行程序都是如此。
杰克M,

Yaaas!这个!让开发人员决定何时使用全局版本合适!!
彼得·孔加·卡莫


-2

我最近遇到了“找不到本地gulp”错误消息。通过创建从全局node_modules目录到gulpfile.js所在的本地项目目录的符号链接,我能够克服它。


7
然后,您无法达到在升级基本系统时不会中断的本地可用构建系统的目的。这肯定是一个坏主意,与作者的意图背道而驰……
Mangled Deutz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.