]> cat aescling's git repositories - mastodon.git/blob - babel.config.js
New Crowdin translations (#11799)
[mastodon.git] / babel.config.js
1 module.exports = (api) => {
2 const env = api.env();
3
4 const envOptions = {
5 debug: false,
6 loose: true,
7 modules: false,
8 };
9
10 const config = {
11 presets: [
12 '@babel/react',
13 ['@babel/env', envOptions],
14 ],
15 plugins: [
16 '@babel/syntax-dynamic-import',
17 ['@babel/proposal-object-rest-spread', { useBuiltIns: true }],
18 ['@babel/proposal-decorators', { legacy: true }],
19 '@babel/proposal-class-properties',
20 ['react-intl', { messagesDir: './build/messages' }],
21 'preval',
22 ],
23 overrides: [{
24 test: /tesseract\.js/,
25 presets: [
26 ['@babel/env', { ...envOptions, modules: 'commonjs' }],
27 ],
28 }],
29 };
30
31 switch (env) {
32 case 'production':
33 envOptions.debug = false;
34 config.plugins.push(...[
35 'lodash',
36 [
37 'transform-react-remove-prop-types',
38 {
39 mode: 'remove',
40 removeImport: true,
41 additionalLibraries: [
42 'react-immutable-proptypes',
43 ],
44 },
45 ],
46 '@babel/transform-react-inline-elements',
47 [
48 '@babel/transform-runtime',
49 {
50 helpers: true,
51 regenerator: false,
52 useESModules: true,
53 },
54 ],
55 ]);
56 break;
57 case 'development':
58 envOptions.debug = true;
59 config.plugins.push(...[
60 '@babel/transform-react-jsx-source',
61 '@babel/transform-react-jsx-self',
62 ]);
63 break;
64 case 'test':
65 envOptions.modules = 'commonjs';
66 break;
67 }
68
69 return config;
70 };
71
This page took 0.083063 seconds and 5 git commands to generate.