我试图在我的项目中使用汇总,在该项目中我也使用把手。特别是,我为其中一个模板使用了一个简单的助手。我找到了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库,这似乎是错误的方式。
有人知道我在这里想念什么吗?
答案 0 :(得分:2)
尝试在您的rollup.config.js
中执行以下操作:
{
external: [
'assets/js/handlebarsHelpers.js'
],
output: {
globals: {
'assets/js/handlebarsHelpers.js': 'Helpers0',
},
...
},
...
}
尽管有一个可用于复制的仓库很高兴...