Karma,在React上的Browserify失败了

时间:2015-02-26 12:00:37

标签: less karma-runner reactjs browserify

我学习如何使用React,然后使用Karma作为测试运行器。我用browserify / reactify(mocha + kai)运行Karma。每当我运行npm test时,我都会收到以下错误:

ERROR [framework.browserify]: bundle error
ERROR [framework.browserify]: 
/Users/user/Projects/example-d3-react/src/d3Chart.less:1
.d3 {
^
ParseError: Unexpected token
ERROR [karma]: [TypeError: Not a string or buffer]

这发生在项目中的所有LESS文件中。我尝试将{LESS预处理器添加到karma.conf,如下所示:

preprocessors: {
    'src/*.less': ['less'],
    'tests/**/*.js': ['browserify']
},

browserify: {
    debug: true,
    transform: [ 'reactify' ]
},
lessPreprocessor: {
      options: {
        paths: ['src'],
        save: true,
        rootpath: './'
      },
      additionalData: {
        modifyVars: {
          'bodyColor': 'grey',
          'secondBoxColor': 'blue'
        },
        globalVars: {
          'globalBoxColor': 'red'
        }
      },
      transformPath: function(path) {
        console.log("transforming");
        return path.replace(/\.less$/, '.compiled.css');
      }
    },

2 个答案:

答案 0 :(得分:1)

将预处理器显式添加到配置:plugins: ['karma-less-preprocessor']

答案 1 :(得分:0)

所有建议的答案都没有帮助我,但是如果有人遇到这个问题,那么对我有用的解决方案就是将项目特定的较少转换添加到package.json文件中。 E.g:

{
...
  "browserify": {
    "exclude": "*.spec.js",
    "transform": [
      "node-lessify",
      "browserify-ng-html2js"
    ]
  },
...
}

在执行此操作时构建中断,因为我在通过NPM构建应用程序时使用cmd行转换。移除了cmd线变换部分,因为package.json变换将应用变换programmatically,现在它再次有效。