You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
62 lines
1.7 KiB
62 lines
1.7 KiB
const { NODE_ENV, CLI } = process.env
|
|
|
|
const __TEST__ = NODE_ENV === 'test'
|
|
const __CLI__ = !!CLI
|
|
|
|
module.exports = (api) => {
|
|
|
|
if (api) {
|
|
api.cache(true);
|
|
}
|
|
|
|
return {
|
|
presets: [
|
|
[
|
|
require('@babel/preset-env'),
|
|
{
|
|
loose: true,
|
|
modules: __TEST__ || __CLI__ ? 'commonjs' : false,
|
|
targets: {
|
|
electron: '1.8',
|
|
node: 'current',
|
|
},
|
|
},
|
|
],
|
|
require('@babel/preset-flow'),
|
|
require('@babel/preset-react'),
|
|
],
|
|
plugins: [
|
|
[require('babel-plugin-module-resolver'), { root: ['src'] }],
|
|
[
|
|
require('babel-plugin-styled-components'),
|
|
{
|
|
displayName: true,
|
|
ssr: __TEST__,
|
|
},
|
|
],
|
|
// Stage 0
|
|
"@babel/plugin-proposal-function-bind",
|
|
|
|
// Stage 1
|
|
"@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",
|
|
|
|
// Stage 2
|
|
["@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",
|
|
|
|
// Stage 3
|
|
"@babel/plugin-syntax-dynamic-import",
|
|
"@babel/plugin-syntax-import-meta",
|
|
["@babel/plugin-proposal-class-properties", { "loose": false }],
|
|
"@babel/plugin-proposal-json-strings"
|
|
],
|
|
}
|
|
}
|
|
|