是否可以以分布式方式设置 Gulp?

Is it possible to setup Gulp in a distributed fashion?

这是我想要做的:

我们目前有一些与 G运行t 类似的设置(尽管没有 Gruntfile.js 复制内容)。为我们的每个应用程序和几个自定义 Bower 组件设置一个通用设置非常有效。只需将它作为依赖项引入,它就会神奇地工作。

到目前为止,我 运行 遇到的主要问题是当我将 my-gulp 添加到 myApp 的依赖项时,运行 安装,my-gulp 出现很好,但是看不到各个插件(my-gulp 依赖项)。它们已安装,但 运行ning 类似 gulp default 或任何显示它们丢失的东西。

我已经尝试在 "dependencies" 下设置 Gulp 依赖项(在 my-gulp 中)而不是 "devDependencies",但仍然无法正常工作。


有没有人有过这样的经历? 我是不是在做什么蠢事?

任何帮助都很棒!

谢谢大家:)

问题在于 npm 处理嵌套依赖项的方式。安装 "my-gulp" 软件包时,目录树如下所示:

| myApp
|-- node_modules
    |-- my-gulp
       |-- node_modules
           |-- gulp_dependency

如您所见,"my-gulp" 的依赖项被埋在它自己的 node_modules 目录中。 myApp 无法访问它们。

您可以使用 npm-flatten 之类的方法将它们移动到顶级目录。否则,您将被迫将每个依赖项添加到 myApp 的 package.json。

编辑: 如要点所示,您可以按路径而不是包名称加载依赖项。不要复制你的 gulpfile,只需从 myApp 中获取它,然后使用相对路径加载它的依赖项:

// myApp/gulpfile.js
require('my-gulp/gulpfile.js');

// my-gulp/gulpfile.js
var gulpDep = require('./node_modules/gulp-dependency');

注意:如果您使用 npm dedupe,这将不起作用。