Вы можете пройти этот тест двумя способами:
Вариант 1.) Настройте конфигурацию babel для обработки импорта ES6, добавив параметр тестирования env
(флаг среды testing
) будет определен в ваших package.json
сценариях, например: "test": "NODE_ENV=testing jest"
или "test": "BABEL_ENV=testing jest"
) ...
babel.config. js
module.exports = api => {
api.cache(true);
return {
presets: ["@babel/preset-env", "@babel/preset-react"],
plugins: [
"@babel/plugin-transform-runtime",
["@babel/plugin-proposal-class-properties", { loose: true }],
],
env: {
testing: {
presets: [
[ "@babel/preset-env", { targets: { node: "current" }}],
],
},
},
};
};
Вариант 2.) Переведите модуль ES6 в синтаксис ES5 в вашей конфигурации webpack.config.js
:
webpack.config. js
const { NODE_ENV } = process.env
const inDevelopment = NODE_ENV === "development";
module.exports = {
...
module: {
rules: [
...
{
test: /\.(js|jsx)$/,
loader: "babel-loader",
exclude: !inDevelopment ? /node_modules\/(?!(@atlaskit\/tooltip))/ : /(node_modules)/,
options: {
cacheDirectory: inDevelopment,
cacheCompression: false,
},
},
...
],
}
...
}
Основное различие между этими двумя вариантами заключается в том, что первый вариант будет работать только в среде тестирования. Если вы попытаетесь использовать его в среде разработки / производства, может повлиять на другие сторонние пакеты и вызвать ошибки компиляции. Поэтому, если вы планируете перенести это в производственную среду, которая поддерживает IE11 и ниже, рекомендуется второй вариант. ОДНАКО помните, что это будет переносить пакет при каждом создании производственной сборки и / или запуске набора тестов. Поэтому, если вы работаете над очень большим проектом (или переносите несколько пакетов ES6), он может быть достаточно ресурсоемким. Поэтому я бы рекомендовал скомпилировать пакеты сторонних производителей из ES6 в ES5 и установить их / их локально или в частном порядке (через пакет NPM).
Рабочий пример (этот пример включает в себя второй вариант) ): https://github.com/mattcarlotta/transpile-es6-module
Для установки:
cd ~/Desktop && git clone git@github.com:mattcarlotta/transpile-es6-module.git
cd transpile-es6-module
yarn install
yarn dev
для запуска демо yarn test
для запуска тестовых наборов