使用Gulp 4和recipe使用gulp-hub将我的任务拆分成多个文件只会在尝试加载任务文件时抛出此错误。任务文件非常简单,只是想测试一切正常。
我在Github上的Undertaker上找到了get函数的引用,但是我真的不明白他们想说的是什么,看起来gulp-hub似乎正在解除
其他人遇到这个并知道如何解决它?
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)
答案 0 :(得分:11)
您可能正在运行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
的{{3}}失败了。
registry-init
分支似乎有效。您可以这样安装:
npm uninstall gulp-hub
npm install --save-dev frankwallis/gulp-hub#registry-init
答案 1 :(得分:1)
2016年10月12日更新
我使用yeoman-fountainjs并在他们的package.json中使用以下dev-dependency定义,它就像一个魅力:
"gulp": "gulpjs/gulp#4ed9a4a3275559c73a396eff7e1fde3824951ebb",
"gulp-hub": "frankwallis/gulp-hub#d461b9c700df9010d0a8694e4af1fb96d9f38bf4",
答案 2 :(得分:1)
我遇到了同样的错误,但这是因为我未能正确地向Gulp公开任务。
起初,我在Dependency Injector
文件中使用这样的CommonJS并得到了相同的错误:
constructor(
@Optional() private wheels : number,
@Optional() private model : string,
@Optional() private automatic : boolean,
@Optional() private colour : string,
@Optional() private engine : string,
@Optional() private seats :number
) {
}
因此我将其更改为Gulp任务,并且可以正常工作:
help.js