使用webpack的Dustjs不会加载所有文件

时间:2016-06-02 13:10:43

标签: javascript angularjs webpack dust.js

早上好,

我使用dustjs-linekedin 2.7.2.,使用Webpack和Angular来验证brownser中的模板。

我需要在dustjs-linkedin/lib/中加载所有文件,或者只是在目录dust-full.js中加载dustjs-linkedin/dist

我声明看起来像这个window.dust = require('dustjs-linkedin'),它可以工作,但只需加载dust.js,如下图所示。

sucess load just /lib/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')

但我在下面收到此错误:

error don't load

我很抱歉英语和有问题的东西。

1 个答案:

答案 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';