嗨,自从我在 assemble.io 中使用我的 gulp 堆栈以来已经有一段时间了......我发现它不起作用;
使用 Node v.15.11.0 和:
"assemble": "^0.24.3",
"gulp": "^4.0.2",
"handlebars": "^4.7.7",
"handlebars-helpers": "^0.10.0
我的吞咽任务:
const gulp = require('gulp'),
extname = require('gulp-extname'),
assemble = require('assemble')(),
helpers = require('handlebars-helpers')(),
CONFIG = require('../config.js');
gulp.task('assemble', function() {
assemble.option('layoutDelims', /{{>[ \t]*?(body)[ \t]*?}}/g);
assemble.option('layout', 'index');
assemble.option('assets','/Assets');
assemble.partials('./source/Templates/includes/partials/**/*.html');
assemble.layouts('./source/Templates/layouts/*.html');
assemble.pages('./source/Templates/pages/**/*.html');
assemble.data('./source/Templates/data/**/*.json');
assemble.helpers('./source/Templates/helpers/**/*.js')
return assemble.toStream('pages')
.pipe(assemble.renderFile())
.pipe(extname())
.pipe(assemble.dest(CONFIG.PATHS.destinationdir+'/'));
});
它抛出这个异常:
TypeError: expected helpers to be an object
at AsyncHelpers.wrapHelpers (/Users/riccardo/Progetti/my-foundation-1/node_modules/async-helpers/index.js:162:11)
at AsyncHelpers.wrapHelper (/Users/riccardo/Progetti/my-foundation-1/node_modules/async-helpers/index.js:142:21)
at AsyncHelpers.wrapHelpers (/Users/riccardo/Progetti/my-foundation-1/node_modules/async-helpers/index.js:177:25)
...
(如果您需要,将提供完整消息)
我没有使用“奇怪的”助手,只是简单的部分包含
{{>somepartial}}
谢谢您的帮助
[编辑]
在同一台电脑上的另一个项目上使用
"handlebars": "^4.7.6"
一切正常;我尝试降级到 "handlebars": "^4.7.6"
但到目前为止还没有运气(也许是某个地方的缓存?)
可能 Assemble 项目不再维护了。最新版本 0.24.3 于 2017 年 5 月 20 日发布,它与较新版本的 Node.js 不兼容。我需要使用 NVM 将 Node.js 降级到 6 版本才能忽略此错误。
我遇到了类似的问题并设法找到解决方案。
Assemble 间接依赖的 async-helpers 的更高版本中似乎存在一个错误。 尝试将 async-helpers 降级到早期版本。我没有测试所有版本,但至少 0.3.9 看起来还可以。
下面是一个用于降级的 npm 命令。
npm install -D [email protected]