Skip to content
Open
Original file line number Diff line number Diff line change
@@ -1,31 +1,42 @@
const ENV = process.env.BABEL_ENV || process.env.NODE_ENV;

// @see https://jamie.build/last-2-versions
const browsers = [
'>0.25%',
'not ie 11',
'not op_mini all'
];

module.exports = function (env, options={}) {
const isProd = env && env.production;
const isProd = env && env.production || ENV === 'production';

if (ENV === 'test') {
options.modules = 'commonjs';
}

return {
babelrc: false,
presets: [
[require.resolve('@babel/preset-env'), {
loose: true,
modules: options.modules || false,
targets: {
browsers: options.browsers
browsers: options.browsers || browsers
},
exclude: [
'transform-regenerator',
'transform-async-to-generator'
'transform-typeof-symbol'
]
}]
],
plugins: [
require.resolve('@babel/plugin-syntax-dynamic-import'),
require.resolve('@babel/plugin-transform-object-assign'),
[require.resolve('@babel/plugin-proposal-decorators'), {legacy: true}],
[require.resolve('@babel/plugin-proposal-decorators'), { legacy:true }],
require.resolve('@babel/plugin-proposal-class-properties'),
require.resolve('@babel/plugin-proposal-object-rest-spread'),
require.resolve('@babel/plugin-transform-react-constant-elements'),
isProd && require.resolve('babel-plugin-transform-react-remove-prop-types'),
[require.resolve('@babel/plugin-transform-react-jsx'), { pragma: 'h' }],
[require.resolve('fast-async'), { spec: true }]
[require.resolve('@babel/plugin-transform-react-jsx'), { pragma: 'h' }]
].filter(Boolean)
};
};
20 changes: 20 additions & 0 deletions packages/babel/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{
"name": "@preact/babel",
"version": "0.0.0",
"dependencies": {
"@babel/plugin-proposal-class-properties": "^7.0.0",
"@babel/plugin-proposal-decorators": "^7.0.0",
"@babel/plugin-proposal-object-rest-spread": "^7.0.0",
"@babel/plugin-syntax-dynamic-import": "^7.0.0",
"@babel/plugin-transform-object-assign": "^7.0.0",
"@babel/plugin-transform-react-constant-elements": "^7.0.0",
"@babel/plugin-transform-react-jsx": "^7.0.0",
"@babel/preset-env": "^7.0.0",
"babel-plugin-jsx-pragmatic": "^1.0.2",
"babel-plugin-transform-export-extensions": "^6.22.0",
"babel-plugin-transform-react-remove-prop-types": "^0.4.15"
},
"peerDependencies": {
"@babel/core": "^7.0.0"
}
}
Loading