Gulp 4 使用 Gulp 跨多个文件拆分任务-Hub 由于缺少 Get 函数而失败
Gulp 4 Split Tasks Across Multiple Files Using Gulp-Hub Fails Due to Missing Get Function
使用 Gulp 4 和 recipe 使用 gulp-hub 将我的任务拆分为多个文件会在尝试加载任务文件时抛出此错误。任务文件非常简单,只是想测试一切是否正常。
我在 Github 上的 Undertaker 上找到了关于 get 函数的参考资料,但我真的不明白他们想说什么,看起来 gulp-集线器应该负责起重工作。
还有其他人运行参与其中并知道如何解决吗?
Gulp 文件
'use strict';
var gulp = require('gulp');
var HubRegistry = require('gulp-hub');
// Load some files into the registry
var hub = new HubRegistry(['gulp/tasks/*.js']); // only one file help.js
// Tell gulp to use the tasks just loaded
gulp.registry(hub);
帮助任务 - /gulp/tasks/help.js
'use strict';
var gulp = require('gulp');
gulp.task('help', []);
抛出错误
$ gulp help
[01:36:37] Loading gulp\tasks\help.js
D:\projects\app\node_modules\undertaker\lib\helpers\validateRegistry.js:36
throw err;
^
AssertionError: Custom registry must have `get` function
at validateRegistry (D:\projects\app\node_modules\undertaker\lib\helpers\validateRegistry.js:28:5)
at Gulp.registry (D:\projects\app\node_modules\undertaker\lib\registry.js:17:3)
at Object.<anonymous> (D:\projects\app\gulpfile.js:11:6)
at Module._compile (module.js:541:32)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Module.require (module.js:468:17)
at require (internal/module.js:20:19)
您可能是 运行 gulp-hub@0.8.0
,这是当前发布到 npm 的版本,专为 gulp 3.x.
对于 gulp 4.x,您需要从 development branches on GitHub 之一安装 gulp-hub
。目前有 4.0
和 registry-init
。
4.0
分支现在无法工作,因为它使 undertaker
的 registry validation 失败。
registry-init
分支似乎有效。你可以这样安装它:
npm uninstall gulp-hub
npm install --save-dev frankwallis/gulp-hub#registry-init
2016 年 10 月 12 日更新
我与 yeoman-fountainjs 一起工作,在他们的 package.json 中定义了以下开发依赖性,这非常有效:
"gulp": "gulpjs/gulp#4ed9a4a3275559c73a396eff7e1fde3824951ebb",
"gulp-hub": "frankwallis/gulp-hub#d461b9c700df9010d0a8694e4af1fb96d9f38bf4",
我 运行 遇到了同样的错误,但这是因为我未能将任务正确公开给 Gulp。
起初我在我的 help.js
文件中使用这样的 CommonJS 并得到相同的错误:
exports.help = help;
所以我将其更改为 Gulp 任务并且成功了:
gulp.task("help", help);
使用 Gulp 4 和 recipe 使用 gulp-hub 将我的任务拆分为多个文件会在尝试加载任务文件时抛出此错误。任务文件非常简单,只是想测试一切是否正常。
我在 Github 上的 Undertaker 上找到了关于 get 函数的参考资料,但我真的不明白他们想说什么,看起来 gulp-集线器应该负责起重工作。
还有其他人运行参与其中并知道如何解决吗?
Gulp 文件
'use strict';
var gulp = require('gulp');
var HubRegistry = require('gulp-hub');
// Load some files into the registry
var hub = new HubRegistry(['gulp/tasks/*.js']); // only one file help.js
// Tell gulp to use the tasks just loaded
gulp.registry(hub);
帮助任务 - /gulp/tasks/help.js
'use strict';
var gulp = require('gulp');
gulp.task('help', []);
抛出错误
$ gulp help
[01:36:37] Loading gulp\tasks\help.js
D:\projects\app\node_modules\undertaker\lib\helpers\validateRegistry.js:36
throw err;
^
AssertionError: Custom registry must have `get` function
at validateRegistry (D:\projects\app\node_modules\undertaker\lib\helpers\validateRegistry.js:28:5)
at Gulp.registry (D:\projects\app\node_modules\undertaker\lib\registry.js:17:3)
at Object.<anonymous> (D:\projects\app\gulpfile.js:11:6)
at Module._compile (module.js:541:32)
at Object.Module._extensions..js (module.js:550:10)
at Module.load (module.js:458:32)
at tryModuleLoad (module.js:417:12)
at Function.Module._load (module.js:409:3)
at Module.require (module.js:468:17)
at require (internal/module.js:20:19)
您可能是 运行 gulp-hub@0.8.0
,这是当前发布到 npm 的版本,专为 gulp 3.x.
对于 gulp 4.x,您需要从 development branches on GitHub 之一安装 gulp-hub
。目前有 4.0
和 registry-init
。
4.0
分支现在无法工作,因为它使 undertaker
的 registry validation 失败。
registry-init
分支似乎有效。你可以这样安装它:
npm uninstall gulp-hub
npm install --save-dev frankwallis/gulp-hub#registry-init
2016 年 10 月 12 日更新
我与 yeoman-fountainjs 一起工作,在他们的 package.json 中定义了以下开发依赖性,这非常有效:
"gulp": "gulpjs/gulp#4ed9a4a3275559c73a396eff7e1fde3824951ebb",
"gulp-hub": "frankwallis/gulp-hub#d461b9c700df9010d0a8694e4af1fb96d9f38bf4",
我 运行 遇到了同样的错误,但这是因为我未能将任务正确公开给 Gulp。
起初我在我的 help.js
文件中使用这样的 CommonJS 并得到相同的错误:
exports.help = help;
所以我将其更改为 Gulp 任务并且成功了:
gulp.task("help", help);