早上好,
我使用dustjs-linekedin 2.7.2.
,使用Webpack和Angular来验证brownser中的模板。
我需要在dustjs-linkedin/lib/
中加载所有文件,或者只是在目录dust-full.js
中加载dustjs-linkedin/dist
我声明看起来像这个window.dust = require('dustjs-linkedin')
,它可以工作,但只需加载dust.js,如下图所示。
当我尝试使用dust.compile(..)
我收到错误时,dust.compile
不是函数。
为了清楚我想要的,就是使用:
function checkDustTemplate (template) {
try {
debugger
var compiled = dust.compile(data);
var tmpl = dust.loadSource(compiled);
dust.render(tmpl, { name: "Name" }, function(err, out) {
document.getElementById('output').textContent = out;
}
catch(err) {
console.log(err);
}}
我尝试加载dust-full.js
,因为这就是我所需要的:
window.dust = require('dustjs-linkedin/dist/dust-full.js')
但我在下面收到此错误:
我很抱歉英语和有问题的东西。
答案 0 :(得分:0)
我遇到的问题是webpack支持AMD但不支持AMD模块。 Dustjs在加载时为AMD提供了替代方案,因此您可以使用imports-loader
禁用这些模块的AMD。
使用imports-loader
安装npm install --save imports-loader
。然后将此规则添加到webpack.config.js的module.rules
部分:
{
test: /dustjs-linkedin/,
loader: 'imports-loader?define=>false',
}
然后你可以导入灰尘并编译:
import dust from 'dustjs-linkedin/lib/dust';
import 'dustjs-linkedin/lib/compiler';