89

我创建了一个webapp-module-storage具有以下定义的模块 ( ):

包.json

{
  "dependencies": {
    ...
  },
  "devDependencies": {
    "gulp": "^3.9.1",
    ...
  },
  "name": "webapp-module-storage",
  "scripts": {
    "postinstall": "gulp build",
    "test": "gulp test"
  }
}

我想我可以在安装它时在另一个模块中使用我的模块:

  • npm install github:myorg/webapp-module-storage#master

但是,当我安装我的模块时,我收到了这个错误:

未找到本地 gulp

尝试运行: npm install gulp

截屏

在此处输入图像描述

我的理解是,它gulp与我的模块一起提供,因为我在其中声明了它,devDependencies但看起来我的npm postinstall脚本找不到gulp.

我错过了什么吗?

4

6 回答 6

193

尝试npm link gulp在您的应用程序目录中运行(以创建指向全局安装的 Gulp 模块的本地链接)。

于 2016-10-10T11:03:00.787 回答
22

尝试先安装依赖项:

npm install

如果仍然不起作用,请全局安装 gulp:

npm install -g gulp

如果您发现安装它的问题。在npm之前输入sudo

如果您需要有关为什么需要全局和本地 gulp 的更多信息,请阅读答案

于 2016-06-29T15:49:44.797 回答
16

我已经尝试了所有提到的解决方案。最后,我意识到我使用 gulp 的位置缺少gulpfile.js文件,从而解决了这个问题。将 gulpfile.js 放在我执行 gulp 的文件夹中后,它对我有用。

于 2017-07-23T06:32:30.423 回答
2

npm link gulp --no-bin-links
运行这个

wherenpm link gulp创建到全局安装的 gulp 模块的本地链接,--no-bin-links参数将阻止 npm 为包可能包含的任何二进制文件创建符号链接。

您无法将符号链接转换为 Windows 共享上的同步文件夹,因此您需要使用“--no-bin-links”来绕过它。

将它用于任何不支持符号链接的文件系统。

符号链接或符号链接是“虚拟”文件或文件夹,它们引用位于其他地方的物理文件或文件夹,并且是许多操作系统(包括 Linux 和 Windows)内置的重要功能。

于 2020-06-21T21:25:30.547 回答
0

npm link gulp --force

使用此命令对我来说效果很好。

于 2020-09-04T12:39:35.770 回答
0

将 Gulp 放入项目的常规依赖项中:

npm i gulp

然后让你的脚本部分像这样引用本地 Gulp:

  "scripts": {
    "postinstall": "./node_modules/.bin/gulp build",
    "test": "./node_modules/.bin/gulp test"
  }
于 2021-03-31T15:17:26.860 回答