找不到本地gulp(尝试运行:npm install gulp)

时间:2016-06-29 15:24:15

标签: npm gulp npm-install post-install

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

的package.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

截图

enter image description here

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

我错过了什么吗?

6 个答案:

答案 0 :(得分:145)

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

答案 1 :(得分:16)

首先尝试安装依赖项:

npm install

如果仍然无效,请全局安装gulp:

npm install -g gulp

如果您在安装时发现问题。在 npm 之前键入 sudo

如果您需要有关全球和本地需要gulp的原因的更多信息,请阅读this回答

答案 2 :(得分:8)

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

答案 3 :(得分:0)

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

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

您不能将符号链接转换为Windows共享上的同步文件夹,因此需要'--no-bin-links'来解决它。

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

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

答案 4 :(得分:0)

npm link gulp --force

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

答案 5 :(得分:0)

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

npm i gulp

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

  "scripts": {
    "postinstall": "./node_modules/.bin/gulp build",
    "test": "./node_modules/.bin/gulp test"
  }