如何在业力中使用require-js text-plugin

时间:2014-10-11 00:54:34

标签: requirejs karma-runner requirejs-text

我想让require-js text pluginkarma-testrunner一起使用 我用npm下载了两个。我得到karma使用requirejs,只是text-plugin让我有些麻烦。

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

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

如果我不使用text-plugin提供文件或在karma.conf中排除,我会从requirejs获取脚本错误 (和业力警告:404 / base / text.js)

 Uncaught Error: Script error for: text

我将以下内容添加到我的require配置文件中:

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

  }
 })

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

我依赖文本插件和模板声明如下:

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

为了记录,当我在摆弄时,我向@ddd添加垫片添加到require配置,即:

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

但是,在我删除它并且如上所述设置了karma配置后,结果证明是不必要的。

干杯!