3

我正在尝试require-js text plugin使用karma-testrunner 我使用 npm 下载的两者。我得到了使用requirejs的因果报应,只有文本插件给我带来了一些麻烦。

当我将 text.js 文件添加到 karma 服务的文件中时,我得到一个不匹配错误:

Uncaught Error: Mismatched anonymous define() module: function (module) {
   //code from text plugin

如果我不使用文本插件提供文件或在 karma.conf 中排除它,我会收到来自 requirejs 的脚本错误(以及业力警告:404/base/text.js)

 Uncaught Error: Script error for: text

我在需要的配置文件中添加了以下内容:

require.config({
    paths: {
    text: './text.js'  //also tried text.js

  }
 })

但这似乎并没有改变任何东西

我依赖于这样声明的文本插件和模板:

   define(['text!views/viewtemplate.html'], function (template) { ...
4

1 回答 1

2

我也遇到了这个问题,因为我试图将模拟 JSON 文件带入我的测试文件并使用 JSON.parse(requirejsInjectedJsonText) 解析它们。

我遇到的问题是忘记使用 require-js-text 和模拟文件更新我的业力配置文件:

files: [
  {pattern: 'mocks/**/*.json', included: false},
  {pattern:'lib/requirejs-text/text.js', included: false},
  'config/require.config.js'
]

在将这些添加到位后(requirejs 配置引用必须始终位于 karma 配置文件中“files”数组的最后一个索引中),我能够成功提取我的模拟数据。

作为记录,当我摆弄时,我尽可能@ddd 将 shim 添加到 require 配置中,即:

shim: {
  'text': {'exports': 'text'}
}

但是,在我删除它并进行如上所述的业力配置设置后,事实证明它是不必要的。

干杯!

于 2015-08-22T17:17:16.263 回答