汇总把手助手

时间:2019-06-05 11:45:46

标签: javascript handlebars.js rollupjs

我试图在我的项目中使用汇总,在该项目中我也使用把手。特别是,我为其中一个模板使用了一个简单的助手。我找到了3个不同的车把汇总插件,并尝试了全部。我最接近使其工作的是使用汇总插件-把手-加号。

这是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   资产/js/handlebarsHelpers.js(由资产/hbs/pct.hbs导入)(!)   缺少全局变量名称使用output.globals指定浏览器   对应于外部模块的全局变量名称   asset / js / handlebarsHelpers.js(猜测“ Helpers0”)

它说handlebarsHelpers.js是由pct.hbs导入的,虽然不是,但这可能是预处理的结果。似乎我需要在某处显式导入handlebarsHelpers.js以获得汇总,将其放入捆绑包中。但是,这样做会带来自己的问题,例如必须导入把手和fs库,这似乎是错误的方式。

有人知道我在这里想念什么吗?

1 个答案:

答案 0 :(得分:2)

尝试在您的rollup.config.js中执行以下操作:

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

尽管有一个可用于复制的仓库很高兴...