我使用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)