storybook/scripts/.babelrc.js

167 lines
4.3 KiB
JavaScript
Raw Normal View History

const withTests = {
presets: [
[
'@babel/preset-env',
{
shippedProposals: true,
useBuiltIns: 'usage',
corejs: '3',
2022-10-12 09:37:30 +02:00
targets: { node: '16' },
},
],
],
plugins: [
2021-11-11 19:35:47 +11:00
'@storybook/babel-plugin-require-context-hook',
'babel-plugin-dynamic-import-node',
'@babel/plugin-transform-runtime',
],
};
// type BabelMode = 'cjs' | 'esm';
const modules = process.env.BABEL_MODE === 'cjs' ? 'auto' : false;
// FIXME: optional chaining introduced in chrome 80, not supported by wepback4
// https://github.com/webpack/webpack/issues/10227#issuecomment-642734920
2022-10-12 09:37:30 +02:00
const targets = process.env.BABEL_MODE === 'esm' ? { chrome: '100' } : { node: '16' };
2021-02-03 22:34:44 +08:00
2018-11-09 09:46:31 +01:00
module.exports = {
2022-04-28 16:52:35 +02:00
compact: false,
2019-11-14 18:43:44 +08:00
ignore: [
2022-07-21 15:42:01 +02:00
'../code/lib/codemod/src/transforms/__testfixtures__',
'../code/lib/postinstall/src/__testfixtures__',
'../code/**/typings.d.ts',
2019-11-14 18:43:44 +08:00
],
presets: [
2021-02-03 22:34:44 +08:00
[
'@babel/preset-env',
{
shippedProposals: true,
useBuiltIns: 'usage',
corejs: '3',
targets,
2021-02-03 22:34:44 +08:00
modules,
},
],
2018-12-28 01:39:01 +01:00
'@babel/preset-typescript',
'@babel/preset-react',
'@babel/preset-flow',
],
2018-11-09 09:46:31 +01:00
plugins: [
[
'@babel/plugin-proposal-decorators',
{
legacy: true,
},
],
2019-01-05 22:15:03 +01:00
['@babel/plugin-proposal-class-properties', { loose: true }],
['@babel/plugin-proposal-private-methods', { loose: true }],
['@babel/plugin-proposal-private-property-in-object', { loose: true }],
2018-11-09 09:46:31 +01:00
'@babel/plugin-proposal-export-default-from',
2018-11-30 17:43:33 +01:00
'@babel/plugin-syntax-dynamic-import',
['@babel/plugin-proposal-object-rest-spread', { loose: true, useBuiltIns: true }],
2018-11-30 17:43:33 +01:00
'babel-plugin-macros',
2022-03-06 22:07:16 +01:00
['@emotion', { sourceMap: true, autoLabel: 'always' }],
2018-11-09 09:46:31 +01:00
],
env: {
test: withTests,
2018-11-09 09:46:31 +01:00
},
overrides: [
{
2022-07-21 15:42:01 +02:00
test: '../code/examples/vue-kitchen-sink',
2020-05-25 18:56:33 +09:00
presets: ['@vue/babel-preset-jsx'],
env: {
test: withTests,
},
2018-11-09 09:46:31 +01:00
},
{
test: './lib',
presets: [
2021-02-03 22:34:44 +08:00
[
'@babel/preset-env',
{
shippedProposals: true,
useBuiltIns: 'usage',
corejs: '3',
modules,
targets,
2021-02-03 22:34:44 +08:00
},
],
'@babel/preset-react',
],
plugins: [
['@babel/plugin-proposal-object-rest-spread', { loose: true, useBuiltIns: true }],
'@babel/plugin-proposal-export-default-from',
'@babel/plugin-syntax-dynamic-import',
2022-01-29 17:06:40 +01:00
['@babel/plugin-proposal-private-property-in-object', { loose: true }],
['@babel/plugin-proposal-class-properties', { loose: true }],
'babel-plugin-macros',
2022-03-06 22:07:16 +01:00
['@emotion', { sourceMap: true, autoLabel: 'always' }],
'babel-plugin-add-react-displayname',
],
env: {
test: withTests,
},
},
2018-11-09 09:46:31 +01:00
{
test: [
2022-07-21 15:42:01 +02:00
'../code/lib/node-logger',
'../code/lib/core',
'../code/lib/core-common',
'../code/lib/core-server',
'../code/lib/builder-webpack5',
'../code/lib/codemod',
'../code/addons/storyshots',
'../code/**/src/server/**',
'../code/**/src/bin/**',
2018-11-09 09:46:31 +01:00
],
presets: [
[
'@babel/preset-env',
{
2018-12-04 16:27:02 +01:00
shippedProposals: true,
useBuiltIns: 'usage',
2018-11-09 09:46:31 +01:00
targets: {
2022-10-12 09:37:30 +02:00
node: '16',
2018-11-09 09:46:31 +01:00
},
2021-02-03 22:34:44 +08:00
modules,
2019-04-26 17:46:58 +02:00
corejs: '3',
2018-11-09 09:46:31 +01:00
},
],
],
2019-01-05 22:15:03 +01:00
plugins: [
2022-03-06 22:07:16 +01:00
'@emotion',
2019-01-05 22:15:03 +01:00
'babel-plugin-macros',
2020-04-02 23:22:04 +02:00
'@babel/plugin-transform-arrow-functions',
'@babel/plugin-transform-shorthand-properties',
'@babel/plugin-transform-block-scoping',
'@babel/plugin-transform-destructuring',
2022-01-29 17:06:40 +01:00
['@babel/plugin-proposal-private-property-in-object', { loose: true }],
2019-01-05 22:15:03 +01:00
['@babel/plugin-proposal-class-properties', { loose: true }],
'@babel/plugin-proposal-object-rest-spread',
'@babel/plugin-proposal-export-default-from',
],
env: {
test: withTests,
},
2018-11-09 09:46:31 +01:00
},
2021-02-03 22:34:44 +08:00
{
test: ['**/virtualModuleEntry.template.js'],
presets: [
[
'@babel/preset-env',
{
shippedProposals: true,
useBuiltIns: 'usage',
targets: {
2022-10-12 09:37:30 +02:00
node: '16',
2021-02-03 22:34:44 +08:00
},
corejs: '3',
modules: false,
},
],
],
},
2018-11-09 09:46:31 +01:00
],
};