Отчет об ошибке
Текущее поведение
~/######/######/packages/core
$ yarn test
/Users/######/######/######/packages/primitives/dist/primitives.js:1
import styled, { css } from 'styled-components';
^^^^^^
SyntaxError: Unexpected identifier
У нас есть монорепо, которое имеет один пакет, скомпилированный с Babel 7 и Rollup to esm.Мы запускаем тесты Mocha, используя файл setup.js, который запускает регистрацию babel до запуска тестов.По какой-то причине кажется, что другой пакет (примитивы) не переносится, в то время как весь другой код и node_modules компилируются просто отлично.
Входной код
require('@babel/register')({
presets: ['@babel/preset-env', '@babel/preset-flow', '@babel/preset-react'],
plugins: [
'@babel/plugin-proposal-export-default-from',
'@babel/plugin-proposal-logical-assignment-operators',
[
'@babel/plugin-proposal-optional-chaining',
{
loose: false,
},
],
[
'@babel/plugin-proposal-pipeline-operator',
{
proposal: 'minimal',
},
],
[
'@babel/plugin-proposal-nullish-coalescing-operator',
{
loose: false,
},
],
'@babel/plugin-proposal-do-expressions',
[
'@babel/plugin-proposal-decorators',
{
legacy: true,
},
],
'@babel/plugin-proposal-function-sent',
'@babel/plugin-proposal-export-namespace-from',
'@babel/plugin-proposal-numeric-separator',
'@babel/plugin-proposal-throw-expressions',
'@babel/plugin-syntax-dynamic-import',
'@babel/plugin-syntax-import-meta',
[
'@babel/plugin-proposal-class-properties',
{
loose: false,
},
],
'@babel/plugin-proposal-json-strings',
'@babel/plugin-transform-modules-commonjs',
'@babel/plugin-transform-runtime',
],
});
const { configure } = require('enzyme');
const mock = require('mock-require');
const { JSDOM } = require('jsdom');
const Adapter = require('enzyme-adapter-react-16');
require('ignore-styles').default(['.md', '.css', '.scss', '.png']);
configure({ adapter: new Adapter() });
const jsdom = new JSDOM('<!doctype html><html><body></body></html>');
function copyProps(src, target) {
const props = Object.getOwnPropertyNames(src)
.filter((prop) => typeof target[prop] === 'undefined')
.map((prop) => Object.getOwnPropertyDescriptor(src, prop));
Object.defineProperties(target, props);
}
global.window = jsdom.window;
global.self = {
addEventListener: () => {},
postMessage: () => {},
};
global.document = jsdom.window.document;
global.navigator = {
userAgent: 'node.js',
};
global.CustomEvent = jsdom.window.CustomEvent;
/* global window */
copyProps(window, global);
mock('Utilities/IconClasses', '../utils/IconClasses');
mock('Utilities/Mobile', '../utils/Mobile');
mock('Utilities/Deprecated', '../utils/Deprecated');
mock('Utilities/ISOString', '../utils/ISOString');
mock('Utilities/position', '../utils/position');
mock('Utilities/Validate', '../utils/Validate');
mock('Internal/IconWrapper', '../internal/IconWrapper');
Ожидаемое поведение / код Я ожидаю, что все модули будут скомпилированы до запуска тестов mocha.
Настройка Babel (.babelrc, package.json,команда cli)
{
presets: ['@babel/preset-env', '@babel/preset-flow', '@babel/preset-react'],
plugins: [
'@babel/plugin-proposal-export-default-from',
'@babel/plugin-proposal-logical-assignment-operators',
[
'@babel/plugin-proposal-optional-chaining',
{
loose: false,
},
],
[
'@babel/plugin-proposal-pipeline-operator',
{
proposal: 'minimal',
},
],
[
'@babel/plugin-proposal-nullish-coalescing-operator',
{
loose: false,
},
],
'@babel/plugin-proposal-do-expressions',
[
'@babel/plugin-proposal-decorators',
{
legacy: true,
},
],
'@babel/plugin-proposal-function-sent',
'@babel/plugin-proposal-export-namespace-from',
'@babel/plugin-proposal-numeric-separator',
'@babel/plugin-proposal-throw-expressions',
'@babel/plugin-syntax-dynamic-import',
'@babel/plugin-syntax-import-meta',
[
'@babel/plugin-proposal-class-properties',
{
loose: false,
},
],
'@babel/plugin-proposal-json-strings',
'@babel/plugin-transform-modules-commonjs',
'@babel/plugin-transform-runtime',
],
}
Среда - Версия (и) Babel: v7.4.5 - Версия узла / npm: v10.16.0 - ОС: OSX 10.14.5 - Monorepo: Lerna - Как вы используете Babel: регистрация