我使用webpack开发了一个 React 组件。这是它的一个简单版本:
'use strict';
require('./MyComponent.less');
var React = require('react');
var MyComponent = React.createClass({
  render() {
    return (
      <div className="my-component">
        Hello World
      </div>
    );
  }
});
module.exports = MyComponent;
现在,我想使用jest测试这个组件。这是我的相关部分package.json:
"scripts": {
  "test": "jest"
},
"jest": {
  "rootDir": ".",
  "testDirectoryName": "tests",
  "scriptPreprocessor": "<rootDir>/node_modules/babel-jest",
  "unmockedModulePathPatterns": [
    "react"
  ]
}
运行时npm test,出现以下错误:
语法错误:/Users/mishamoroshko/react-component/src/tests/MyComponent.js:/Users/mishamoroshko/react-component/src/MyComponent.js:/Users/mishamoroshko/react-component/src/MyComponent.less:意外令牌非法
看起来 webpack 需要处理,require('./MyComponent.less')然后 jest 才能运行测试。
我想知道是否需要使用jest-webpack 之类的东西。如果是,有没有办法指定多个scriptPreprocessors?(请注意,我已经使用了babel-jest)