-
Notifications
You must be signed in to change notification settings - Fork 2
/
babel.js
42 lines (37 loc) · 1.13 KB
/
babel.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/**
* load babel loader query string, presets and plugins
* @type {[type]}
*/
const logger = require('./logger');
module.exports = (isDebug) => {
var config = require('./config'),
conf = config.getConfig();
var babelQueryStr = {};
babelQueryStr.presets = [
[require.resolve('babel-preset-env'), {
modules: false
}]
];
babelQueryStr.plugins = [
require.resolve('babel-plugin-transform-es2015-destructuring'),
];
if (conf.es7 === true) {
babelQueryStr.plugins.push([require.resolve('babel-plugin-transform-async-to-generator')]);
}
if (conf.react === true) {
babelQueryStr.presets.push('react');
if (isDebug) {
babelQueryStr.plugins.push(['react-transform', {
transforms: [{
transform: 'react-transform-hmr',
imports: ['react'],
locals: ['module']
}]
}]);
}
}
babelQueryStr.cacheDirectory = true;
logger.debug('babel query string:');
logger.debug(babelQueryStr);
return JSON.stringify(babelQueryStr);
};