SyntaxError:意外的标记{在jesttesting期间加载节点模块时

我正在运行一个依赖于“ant”节点模块的笑话testing

这似乎是不能正确parsing的atnd模块内的CSS文件。 我该如何解决这个问题?

当我运行它失败,如下所示:

C:\path\to\project\node_modules\antd\lib\style\index.css:10 html { ^ SyntaxError: Unexpected token { at transformAndBuildScript (node_modules\jest-cli\node_modules\jest-runtime\build\transform.js:316:10) at Object.<anonymous> (node_modules\antd\lib\switch\style\css.js:3:1) 

我的babelrc如下:

 { "presets": [ "react", "es2015-loose", "stage-0" ], "plugins": [ "babel-root-slash-import", "transform-decorators-legacy", "react-hot-loader/babel", "transform-runtime", ["import", [{"libraryName": "antd", "style" : true}]] ], "compact": true, "ignore": [ "/node_modules/(?!react-number-input)" ] } 

jest.json

 { "setupTestFrameworkScriptFile": "<rootDir>/jasmine-setup-env.js", "bail": false, "collectCoverage": true, "collectCoverageFrom": [ "**/src/**/*.js", "!**/node_modules/**" ], "coverageDirectory": "coverage", "coveragePathIgnorePatterns": [ "<rootDir>/node_modules" ], "coverageThreshold": { "global": { "branches": 20, "functions": 15, "lines": 20, "statements": 20 } }, "globals": { "SOURCEMAP": true }, "modulePaths": [ "<rootDir>/src", "<rootDir>/sass", "<rootDir>/public", "<rootDir>/node_modules", "<rootDir>/config" ], "resetModules": true, "testPathDirs": [ "<rootDir>/test/util" ], "testRegex": "(/test/.*|\\.(test|spec))\\.(js|jsx)$", "verbose": false, "unmockedModulePathPatterns": [ "<rootDir>/node_modules/" ] } 

js文件jasmine-setup-env只添加了茉莉花记者和开关的笑话酶

我的webpackconfiguration包含以下内容:

 const webpack = require('webpack'); var path = require('path'); module.exports = { entry: [ './src/main' ], output: { path: './public', filename: 'bundle.js' }, module: { // in loaders you set the plugins to use when loading specific fle extensions loaders: [ { // any js files should be loaded by babel test: /\.js$/, exclude: /node_modules/, loader: 'babel', query: { "presets": ["es2015", "stage-0", "react"], "plugins": ["transform-decorators-legacy"] }, include: path.join(__dirname, 'src') }, { // json files use the json loader test: /\.json$/, loader: 'json' }, { // any static files are loaded directly as a file test: /\.(ico|gif|png|jpg|jpeg|svg|woff|ttf|eot|webp)$/, loaders: ["file?context=public&name=/[path][name].[ext]"], exclude: /node_modules/ }, { // css fles are loaded using the css loader test: /\.css$/, loader: 'style!css!' } ] }, // in here we specify the configuration for when we require or import specific modules resolve: { // we accept any file that is either as-is, using a .js or .json extension extensions: ['', '.js', '.json'], // these directories are the roots in which we scan for files given modulesDirectories: [ "src", "sass", "public", "node_modules", "config" ], // these shims are needed for bunyan alias: { 'dtrace-provider': path.resolve('empty-shim.js'), 'safe-json-stringify': path.resolve('empty-shim.js'), "mv": path.resolve('empty-shim.js'), 'source-map-support': path.resolve('empty-shim.js') } }, plugins: [ // in the provide plugin we specify which classes will be automatically replaced with requires by webpack // eg: Any reference to React will be replaced with require('react') without any imports required new webpack.ProvidePlugin({ 'React': 'react', '$': 'jquery', 'jQuery' : 'jquery' }) ], node: { fs: 'empty' // we are mocking node's fs module to be empty } }; 

在我的情况下嘲笑的CSS内容就够了

我使用了identity-obj-proxy,如下所示: https : //facebook.github.io/jest/docs/tutorial-webpack.html