如何在运行jest时禁用一些babel变换?

时间:2017-02-02 19:38:50

标签: javascript node.js babeljs jestjs

我有一个项目,我开始,然后退出,使用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中提供的默认值。我错过了什么?

0 个答案:

没有答案