【问题标题】:Can't load modules for Intern testing while using Browserify使用 Browserify 时无法加载用于实习生测试的模块
【发布时间】:2014-03-18 04:49:05
【问题描述】:

我正在尝试使用 Intern 对我的一个模块 tested.js 进行单元测试,该模块依赖于另一个模块 dependency.js。因为我使用的是 Browserify,tested.js 包含以下行:

var dep = require('./lib/dependency.js');

实习生抛出以下错误:

Warning: Error: Attempt to require unloaded module lib/dependency.js

这是我的测试文件的开始:

define([

    'intern!object',

    'intern/chai!assert',

    'src/js/tested'

], function (registerSuite, assert, tested) {

    registerSuite({
            // ... 

我的实习生配置文件使用默认的 Dojo 加载程序。我曾尝试使用 RequireJS,但无法使其正常工作(似乎 Intern 在使用替代 AMD 加载程序方面存在一些问题:https://github.com/theintern/intern/issues/147https://github.com/theintern/intern/pull/132#issuecomment-33403157)。

如何让 Intern 正确加载所需的依赖项?

编辑:我正在使用 grunt-browserify,但我正在对 un-Browserified 模块进行单元测试——我只提到 Browserify 来解释我为什么使用“require”。

【问题讨论】:

  • +1 我也遇到过这个问题
  • 1.您将哪些标志传递给 Browserify? 2. 为什么你认为使用 RequireJS 会做不同的事情? 3. 您引用的问题不会影响您使用 Browserified 代码的任何内容。
  • @CSnover 我已经编辑了我的问题,希望让它更清楚一点。我没有更改任何 grunt-browserify 的默认选项。我尝试使用 RequireJS 来查看它是否有帮助,因为错误似乎涉及加载模块。

标签: javascript module require browserify intern


【解决方案1】:

你不能在浏览器中加载 CJS/Node.js 模块而不在 Browserify 中运行它们;这就是 Browserify 的全部目的。您需要预先浏览模块,为您的应用程序切换为使用 AMD 模块而不是 CJS 模块,或者引入动态转换模块的代理。

如果您尝试通过 Intern 在 Node.js 中加载 CJS 模块,则需要使用 intern/dojo/node 模块来促进该加载:

define([

    'intern!object',

    'intern/chai!assert',

    'intern/dojo/node!src/js/tested'

], function (registerSuite, assert, tested) {

    registerSuite({
            // ... 

有关此方面的更多信息,请参阅文档的 Testing Non-AMD code 部分。

【讨论】:

  • intern/dojo/node 模块正是我所需要的,谢谢!你知道它是否适用于 dojo 的别名配置选项吗?我目前在我的intern.js 文件中有loader: {aliases: [['lib/dependency: 'dependency]]},但别名未被识别。
  • 如果您尝试重新映射模块,请使用map,而不是aliasesmapAMD Common Config 的一部分; aliases 令人困惑且不标准。
  • 我已经换成loader: {map: {'src/js/tested: {'dependency': 'lib/dependency'}}},但还是不开心。
  • 只能重新映射 AMD 模块。 Node.js doesn’t do mapping.
猜你喜欢
  • 1970-01-01
  • 2013-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-20
  • 1970-01-01
  • 2015-12-05
  • 1970-01-01
相关资源
最近更新 更多