46 lines
879 B
JavaScript
46 lines
879 B
JavaScript
|
/* global module */
|
||
|
|
||
|
module.exports = function (api) {
|
||
|
const node = {
|
||
|
ignore: [],
|
||
|
plugins: [
|
||
|
'babel-plugin-macros',
|
||
|
[
|
||
|
'@babel/plugin-proposal-decorators', {
|
||
|
legacy: true
|
||
|
}
|
||
|
],
|
||
|
'@babel/plugin-syntax-dynamic-import',
|
||
|
'babel-plugin-dynamic-import-node',
|
||
|
[
|
||
|
'@babel/plugin-proposal-class-properties', {
|
||
|
loose: true
|
||
|
}
|
||
|
],
|
||
|
'@babel/plugin-proposal-optional-chaining',
|
||
|
[
|
||
|
'@babel/plugin-transform-runtime', {
|
||
|
corejs: 2
|
||
|
}
|
||
|
]
|
||
|
],
|
||
|
presets: [
|
||
|
[
|
||
|
'@babel/preset-env', {
|
||
|
targets: {
|
||
|
node: '8.11.3'
|
||
|
}
|
||
|
}
|
||
|
],
|
||
|
'@babel/preset-typescript'
|
||
|
]
|
||
|
};
|
||
|
|
||
|
switch (api.env()) {
|
||
|
case 'node':
|
||
|
return node;
|
||
|
default:
|
||
|
throw new Error(`invalid babel env: ${api.env}`);
|
||
|
}
|
||
|
};
|