@samitouri / QOS-React / commits / e5ed266873

Start using @babel/preset-env

Dan Abramov committed Apr 26, 2019 at 19:29 UTC e5ed26687389669d5e21a5f4f50ec31ca6c3cfa2
5 files changed +48 -17
.babelrc deleted
-7
@@ -1,7 +0,0 @@
1 -{
2 - "plugins": [
3 - ["@babel/plugin-transform-flow-strip-types"],
4 - ["@babel/plugin-proposal-class-properties", { "loose": false }]
5 - ],
6 - "presets": ["@babel/preset-env", "@babel/preset-react", "@babel/preset-flow"]
7 -}
babel.config.js new
+39
@@ -0,0 +1,39 @@
1 +const chromeManifest = require('./shells/browser/chrome/manifest.json');
2 +const firefoxManifest = require('./shells/browser/firefox/manifest.json');
3 +
4 +const minChromeVersion = parseInt(chromeManifest.minimum_chrome_version, 10);
5 +const minFirefoxVersion = parseInt(
6 + firefoxManifest.applications.gecko.strict_min_version,
7 + 10
8 +);
9 +validateVersion(minChromeVersion);
10 +validateVersion(minFirefoxVersion);
11 +
12 +function validateVersion(version) {
13 + if (version > 0 && version < 200) {
14 + return;
15 + }
16 + throw new Error('Suspicious browser version in manifest: ' + version);
17 +}
18 +
19 +module.exports = api => {
20 + const isTest = api.env('test');
21 + const targets = {};
22 + if (isTest) {
23 + targets.node = 'current';
24 + } else {
25 + targets.chrome = minChromeVersion.toString();
26 + targets.firefox = minFirefoxVersion.toString();
27 + }
28 + return {
29 + plugins: [
30 + ['@babel/plugin-transform-flow-strip-types'],
31 + ['@babel/plugin-proposal-class-properties', { loose: false }],
32 + ],
33 + presets: [
34 + ['@babel/preset-env', { targets }],
35 + '@babel/preset-react',
36 + '@babel/preset-flow',
37 + ],
38 + };
39 +};
shells/browser/shared/webpack.backend.js
+3 -4
@@ -1,4 +1,3 @@
1 -const { readFileSync } = require('fs');
1 const { resolve } = require('path');
2 const { DefinePlugin } = require('webpack');
3 const { getGitHubURL, getVersionString } = require('../../utils');
@@ -41,9 +40,9 @@ module.exports = {
40 {
41 test: /\.js$/,
42 loader: 'babel-loader',
44 - options: JSON.parse(
45 - readFileSync(resolve(__dirname, '../../../.babelrc'))
46 - ),
43 + options: {
44 + configFile: resolve(__dirname, '../../../babel.config.js'),
45 + },
46 },
47 ],
48 },
shells/browser/shared/webpack.config.js
+3 -4
@@ -1,4 +1,3 @@
1 -const { readFileSync } = require('fs');
1 const { resolve } = require('path');
2 const { DefinePlugin } = require('webpack');
3 const { getGitHubURL, getVersionString } = require('../../utils');
@@ -47,9 +46,9 @@ module.exports = {
46 {
47 test: /\.js$/,
48 loader: 'babel-loader',
50 - options: JSON.parse(
51 - readFileSync(resolve(__dirname, '../../../.babelrc'))
52 - ),
49 + options: {
50 + configFile: resolve(__dirname, '../../../babel.config.js'),
51 + },
52 },
53 {
54 test: /\.css$/,
shells/dev/webpack.config.js
+3 -2
@@ -1,4 +1,3 @@
1 -const { readFileSync } = require('fs');
1 const { resolve } = require('path');
2 const { DefinePlugin } = require('webpack');
3 const { getGitHubURL, getVersionString } = require('../utils');
@@ -43,7 +42,9 @@ module.exports = {
42 {
43 test: /\.js$/,
44 loader: 'babel-loader',
46 - options: JSON.parse(readFileSync(resolve(__dirname, '../../.babelrc'))),
45 + options: {
46 + configFile: require.resolve('../../babel.config.js'),
47 + },
48 },
49 {
50 test: /\.css$/,