gulp 和 assemble 不起作用 - 抛出“TypeError:期望的助手是一个对象”

问题描述 投票:0回答:2

嗨,自从我在 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"
但到目前为止还没有运气(也许是某个地方的缓存?)

node.js gulp assemble
2个回答
0
投票

可能 Assemble 项目不再维护了。最新版本 0.24.3 于 2017 年 5 月 20 日发布,它与较新版本的 Node.js 不兼容。我需要使用 NVM 将 Node.js 降级到 6 版本才能忽略此错误。


0
投票

我遇到了类似的问题并设法找到解决方案。

Assemble 间接依赖的 async-helpers 的更高版本中似乎存在一个错误。 尝试将 async-helpers 降级到早期版本。我没有测试所有版本,但至少 0.3.9 看起来还可以。

下面是一个用于降级的 npm 命令。

npm install -D [email protected]
© www.soinside.com 2019 - 2024. All rights reserved.