如何配置Intern 4以使用RequireJS?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何配置Intern 4以使用RequireJS?相关的知识,希望对你有一定的参考价值。

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

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

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

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

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

答案

要使用特定的加载器,实习生需要一个“加载器”脚本,它将实际初始化加载器并使用它来处理加载模块。 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"
}

以上是关于如何配置Intern 4以使用RequireJS?的主要内容,如果未能解决你的问题,请参考以下文章

模块化开发RequireJS之shim配置

如何将 Intern 添加到 Dojo 项目中?

如何加载带有requirejs的Tempus Dominus Bootstrap 4(在Moodle中)? (错误:没有为datetimepicker定义调用)

如何在 .NET 应用程序中使用 RequireJS?

requireJS搭建

RequireJS进阶