繁体   English   中英

Rollup Handlebars Helpers

[英]Rollup Handlebars Helpers

我试图在我的项目中使用汇总,我也使用把手。 特别是,我正在为其中一个模板使用一个简单的帮助器。 我找到了3个不同的把手插件,并尝试了所有这些插件。 我最接近它的工作是使用rollup-plugin-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>

在命令行中执行rollup -c之后,这是输出。

assets / js / exp.js→build / js / main.min.js ...(!)未解析的依赖关系https://rollupjs.org/guide/en#warning-treating-module-as-external-dependency 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',
    },
    ...
  },
  ...
}

尽管有一个回购再现,这将是很好的...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM