Javascript 卷起把手助手

Javascript 卷起把手助手,javascript,handlebars.js,rollupjs,Javascript,Handlebars.js,Rollupjs,我试图在我的项目中使用rollup,其中我也使用了把手。特别是,我正在为其中一个模板使用一个简单的助手。我发现了3个不同的手柄卷起插件,并尝试了所有这些。我最接近于让它工作的是使用rollup插件handlebars plus 下面是rollup.config.js: import resolve from 'rollup-plugin-node-resolve'; import handlebars from 'rollup-plugin-handlebars-plus'; // import

我试图在我的项目中使用rollup,其中我也使用了把手。特别是,我正在为其中一个模板使用一个简单的助手。我发现了3个不同的手柄卷起插件,并尝试了所有这些。我最接近于让它工作的是使用rollup插件handlebars plus

下面是rollup.config.js:

import resolve from 'rollup-plugin-node-resolve';
import handlebars from 'rollup-plugin-handlebars-plus';
// import handlebars from 'rollup-plugin-handlebars';
///import handlebars from 'rollup-plugin-hbs';
import commonjs from 'rollup-plugin-commonjs';


export default {
    // tell rollup our main entry point
    input:'assets/js/exp.js',
    output: {
      name: 'rootmont',
      file: 'build/js/main.min.js',
        format: 'iife',
        globals: {
            jquery: '$'
        }
        // format: 'umd'
    },
    plugins: [
        resolve({
            // pass custom options to the resolve plugin
            customResolveOptions: {
              moduleDirectory: [ 'node_modules']
            }
        }),
        commonjs({
            include: 'node_modules/**',
        }),
        handlebars({
            helpers:['assets/js/handlebarsHelpers.js'],
             // templateExtension: '.html'
        })
    ],
};
以下是handlebarsHelpers.js:

export default function(Handlebars) {
    Handlebars.registerHelper( 'percent', function( number ) {
        let num = number * 100;
        num = Math.round( num * 100 ) / 100;
        return num;
    });
}
以下是pct.hbs:

<div>
{{#each data}}
<tr>
    <td>
        {{@key}}
    </td>
    <td>
        {{percent this}}%
    </td>
</tr>
{{/each}}
</div>

{{{#每个数据}
{{@key}}
{{此百分比}}}%
{{/每个}}
在命令行中执行
rollup-c
之后,以下是输出

assets/js/exp.js→ build/js/main.min.js。。。(!)未解析的依赖项 assets/js/handlebarsHelpers.js(由assets/hbs/pct.hbs导入)(!) 缺少全局变量名称使用output.globals指定浏览器 与外部模块对应的全局变量名 assets/js/handlebarsHelpers.js(猜测“Helpers0”)

它说handlebarsHelpers.js是由pct.hbs导入的,虽然不是,但这可能是预处理的结果。似乎我需要显式地将handlebarsHelpers.js导入某个地方,以便将其汇总到包中。但是,这样做会带来自身的问题,比如必须导入车把和fs库,这似乎是错误的方法


有人知道我在这里遗漏了什么吗?

尝试在
rollup.config.js中执行类似操作:

{
  external: [
    'assets/js/handlebarsHelpers.js'
  ],
  output: {
    globals: {
      'assets/js/handlebarsHelpers.js': 'Helpers0',
    },
    ...
  },
  ...
}

如果有一个用于复制的回购协议,那就太好了……

我想如果你能共享一个类似github的东西,我们可以在那里复制,那么会更容易得到帮助。