【问题标题】:Local gulp not found (Try running: npm install gulp)未找到本地 gulp(尝试运行:npm install gulp)
【发布时间】:2016-11-01 09:57:22
【问题描述】:

我创建了一个具有以下定义的模块 (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

截图

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

我错过了什么吗?

【问题讨论】:

标签: npm gulp npm-install post-install


【解决方案1】:

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

npm i gulp

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

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

【讨论】:

    【解决方案2】:

    npm link gulp --force

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

    【讨论】:

      【解决方案3】:

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

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

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

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

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

      【讨论】:

      • 您好!虽然这段代码可以解决问题,including an explanation 解决问题的方式和原因确实有助于提高帖子的质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人。请edit您的回答添加解释并说明适用的限制和假设。
      • 感谢@Brain 指出:)。我已经编辑过了。
      【解决方案4】:

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

      【讨论】:

      • 我犯了同样的错误。我是我应该在的地方的一个目录。如果您要全速设置诸如 Express Generator 环境之类的东西,在该环境中,您在根位置下有多个子应用程序,则很容易发生这种情况。我只需要放慢速度。
      【解决方案5】:

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

      【讨论】:

      • Laravel / homestead 用户在这里。上面的命令对我不起作用,但是 npm link gulp --no-bin-links 起作用了。
      • 为了澄清,npm link [module] 在当前路径创建了一个从 [module] 的全局安装文件夹到 ./node_modules/[module] 的符号链接(npm link 没有名称链接包,请参阅man page)
      【解决方案6】:

      尝试先安装你的依赖项:

      npm install
      

      如果还是不行,全局安装gulp:

      npm install -g gulp
      

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

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

      【讨论】:

      • Gulp 全局安装:[17:51:24] CLI version 1.2.1
      • 实际上不在应用程序中使用我的模块。但我认为它会从我的模块路径或全局安装的 gulp 中获取gulp
      • 似乎它正在搜索项目中的本地 gulp。在你的项目中本地安装它怎么样?
      猜你喜欢
      • 2014-06-10
      • 1970-01-01
      • 2016-07-27
      • 2016-08-18
      • 2019-11-30
      • 1970-01-01
      • 1970-01-01
      • 2017-04-12
      • 1970-01-01
      相关资源
      最近更新 更多