如何配置Intern 4以使用RequireJS?

问题描述 投票:0回答:1

我的node_modules目录中安装了RequireJS,我的intern.json文件有:

"node": {
    "loader": "requirejs"
},

但是,当我运行“npx实习生”时,它失败了:

错误:加载程序脚本requirejs未在at处注册加载程序回调

有没有办法让实习生4使用RequireJS?

requirejs intern
1个回答
1
投票

要使用特定的加载器,实习生需要一个“加载器”脚本,它将实际初始化加载器并使用它来处理加载模块。 Intern包含几个加载器的加载器脚本,例如Dojo 1,Dojo和SystemJS。它不包含RequireJS的加载器脚本,但您可以相当容易地添加一个。

RequireJS的简单脚本如下所示:

// your_project/reqjs.js
intern.registerLoader(function(options) {
  function initLoader(requirejs) {
    // Configure requireJS -- use options passed in through the intern.json
    // config, and add anything else
    requirejs.config(options);

    // This is the function Intern will actually call to load modules
    return function(modules) {
      return new Promise(function(resolve, reject) {
        requirejs(modules, function() {
          resolve();
        }, function(error) {
          reject(error);
        });
      });
    };
  };

  if (typeof window !== 'undefined') {
    return intern
      .loadScript('node_modules/requirejs/require.js')
      .then(function() {
        return initLoader(window.requirejs);
      });
  } else {
    return initLoader(require('requirejs'));
  }
});

请注意,Intern不使用加载器来实际检索自己使用的模块(这就是为什么上面的resolve调用不包括加载的模块),它只使用它们来加载测试套件。套房本身可以正常使用装载机。

您可以在配置中使用该脚本

"node": {
  "loader": "./reqjs.js"
}
© www.soinside.com 2019 - 2024. All rights reserved.