mirror of
https://github.com/status-im/react-native.git
synced 2025-02-12 01:16:46 +00:00
Summary: Rather than specifying Babel plugins in the `.babelrc` packaged with react-native, leverage a Babel preset to define the plugins (https://github.com/exponentjs/babel-preset-react-native). This allows for a much better user experience for those who want (or need) to override options in their project's `.babelrc`. Prior to this PR, if a user wanted to use a custom babel-plugin (or a custom set of babel plugins), they'd have either 1) manually override the `.babelrc` in the react-packager directory (or fork RN), or 2) specify a custom transformer to use when running the packager that loaded their own `.babelrc`. Note - the custom transformer was necessary because without it, RN's `.babelrc` options would supersede the options defined in the project's `.babelrc`...potentially causing issues with plugin ordering. This PR makes the transformer check for the existence of a project-level `.babelrc`, and if it it's there, it _doesn't_ use the react-native `.babelrc`. This prevents any oddities with Babel plug Closes https://github.com/facebook/react-native/pull/5214 Reviewed By: davidaurelio Differential Revision: D2881814 Pulled By: martinbigio fb-gh-sync-id: 4168144b7a365fae62bbeed094d8a03a48b4798c
43 lines
1.3 KiB
JavaScript
43 lines
1.3 KiB
JavaScript
/**
|
|
* Copyright (c) 2015-present, Facebook, Inc.
|
|
* All rights reserved.
|
|
*
|
|
* This source code is licensed under the BSD-style license found in the
|
|
* LICENSE file in the root directory of this source tree. An additional grant
|
|
* of patent rights can be found in the PATENTS file in the same directory.
|
|
*/
|
|
'use strict';
|
|
|
|
var resolvePlugins = require('../lib/resolvePlugins');
|
|
|
|
module.exports = {
|
|
comments: false,
|
|
compact: true,
|
|
plugins: resolvePlugins([
|
|
'syntax-async-functions',
|
|
'syntax-class-properties',
|
|
'syntax-trailing-function-commas',
|
|
'transform-class-properties',
|
|
'transform-es2015-arrow-functions',
|
|
'transform-es2015-block-scoping',
|
|
'transform-es2015-classes',
|
|
'transform-es2015-computed-properties',
|
|
'transform-es2015-constants',
|
|
'transform-es2015-destructuring',
|
|
['transform-es2015-modules-commonjs', { strict: false, allowTopLevelThis: true }],
|
|
'transform-es2015-parameters',
|
|
'transform-es2015-shorthand-properties',
|
|
'transform-es2015-spread',
|
|
'transform-es2015-template-literals',
|
|
'transform-flow-strip-types',
|
|
'transform-object-assign',
|
|
'transform-object-rest-spread',
|
|
'transform-react-display-name',
|
|
'transform-react-jsx',
|
|
'transform-regenerator',
|
|
['transform-es2015-for-of', { loose: true }],
|
|
]),
|
|
retainLines: true,
|
|
sourceMaps: false,
|
|
};
|