我有一个项目,我开始,然后退出,使用react-create-app,我开始编写测试。由于我使用的是最新的节点,因此我不需要运行许多测试的babel变换。 (这有利于简化回溯)。但是,我无法弄清楚如何在运行测试时阻止babel转换我的代码。
在我的package.json中我有
{
"scripts": {
"test": "BABEL_ENV=test node --harmony scripts/test.js --env=jsdom"
},
"jest": {
"moduleFileExtensions": [
"jsx",
"js",
"json"
],
"moduleNameMapper": {
"^.+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/config/jest/FileStub.js",
"^.+\\.css$": "<rootDir>/config/jest/CSSStub.js"
},
"setupFiles": [
"<rootDir>/config/polyfills.js"
],
"testPathIgnorePatterns": [
"<rootDir>/(build|docs|node_modules|scripts)/"
],
"testEnvironment": "node"
}
}
我的.babelrc文件如下:
{
"presets": [
["es2015", { "modules": false }],
"react-app"
],
"plugins": [
["transform-class-properties", { "spec": true }],
["transform-flow-strip-types"]
],
"env": {
"test": {
"presets": [
"node7",
"react-app"
],
"plugins": [
["transform-class-properties", { "spec": true }],
["transform-flow-strip-types"]
]
}
}
}
略微修改的test.js文件是:
process.env.NODE_ENV = 'test';
process.env.BABEL_ENV = 'test';
process.env.PUBLIC_URL = '';
require('dotenv').config({ silent: true });
const jest = require('jest');
const argv = process.argv.slice(2);
if (!process.env.CI) {
argv.push('--watch');
}
jest.run(argv);
我认为我误解了&#34; env&#34; babelrc的一部分可以工作,但我认为设置BABEL_ENV
变量会覆盖.babelrc中提供的默认值。我错过了什么?