Karma-browserify 转换未完成

Karma-browserify transformations are not done

我在 karma 配置方面遇到了一些问题。 该项目正在使用 React 和 Browserify 开发,反应组件使用 .jsx 语法编写,项目是 build with gulp.

Building 工作正常,但我想使用 karma, jasmine and React.TestUtils.

覆盖 ui 单元测试组件

此外,我使用 karma-browserify 插件。一般来说,它工作正常。当我在我的测试文件中执行 require('some-module') 时,模块被导入。

但是转换没有完成,当我导入一些用 JSX 语法编写的模块时,我得到一个错误:

ERROR [framework.browserify]: bundle error
ERROR [framework.browserify]: Error: Parsing file /path/to/project/src/ui/js/base/icon.jsx: Unexpected token (12:6)

我的业力配置有什么问题,为什么会错过转换?

module.exports = function (karma) {
  karma.set({
    basePath: './',

    frameworks: ['browserify', 'jasmine'],

    files: ['./**/*.test.js'],

    preprocessors: {
      './**/*.test.js': ['browserify']
    },

    browserify: {
      debug: true,
      transform: ['reactify']
    },

    reporters: ['progress'],

    port: 9876,

    colors: true,

    logLevel: karma.LOG_INFO,

    autoWatch: false,

    browsers: ['Chrome'],

    singleRun: true
  });
};

P.S。我用的是xubuntu 14.10,node 0.12.4.

Gulp 浏览器的转换任务工作正常,它是 build 像 this example

P.P.S。提前感谢您的帮助。

我在寻找如何解决我自己的类似问题时遇到了这个问题。这是同样的错误,只是我使用的是 babelify 转换,在我的情况下,这是语法基础错误的问题,每个转换本身就是一个数组,所以在查看了一个非常无用的错误并阅读了一段时间之后我更改了这一行:

browserify: {
debug: true,
transform: ['babelify',{presets: ["es2015","react"]}],
 extensions: ['.js', '.jsx']}

变成:

browserify: {
debug: true,
transform: [['babelify',{presets: ["es2015","react"]}]],
 extensions: ['.js', '.jsx']}

不确定这会有多大帮助,尤其是在这么长时间之后,但是,你去吧