react-native/packager/babelRegisterOnly.js

38 lines
897 B
JavaScript
Raw Normal View History

/**
* 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';
require('./setupNodePolyfills');
var _only = [];
function registerOnly(onlyList) {
require('babel-register')(config(onlyList));
}
function config(onlyList) {
_only = _only.concat(onlyList);
return {
presets: ['es2015-node'],
plugins: [
'transform-flow-strip-types',
'syntax-trailing-function-commas',
'transform-object-rest-spread',
packager: introducing async/await, return of the yarn Summary: The first time I tried to commit this changeset, it was causing many new packages to be installed, because the dependency would depend on newer versions that what we have installed. So, I had made a diff so upgrade all the babel packages. Unfortunately this caused some problem as the newer versions of Babel are more strict on some syntaxes. Of course, these have to be addressed, but I don't want this changeset to be coupled with Babel upgrades and the issues that arise from it. So instead, I decided to install the slightly older version of the async-to-generator module. At first I tried with just doing: yarn add babel-plugin-transform-async-to-generator@6.16.0 But, `yarn` is stubborn: because this module depends on a caret version of `babel-helper-remap-async-to-generator`, it installs the very last version of it, that itself needs more recent versions of other Babel modules. So, instead, I add to install a slightly older version of the dependency manually, then then the plugin: yarn add babel-helper-remap-async-to-generator@6.16.0 yarn add babel-plugin-transform-async-to-generator@6.16.0 This allows us to have a `yarn.lock` with only a minimal amount of changes, and uncouple this change from any Babel upgrades. Because we only have a few new modules, the `node_modules` folder also stays the same, 133M, and it gives us confidence this will not cause significant startup time regressions. Reviewed By: cpojer Differential Revision: D4578733 fbshipit-source-id: deb0f720b895b7196aaf432adec3e56f18663940
2017-02-20 16:35:57 +00:00
'transform-async-to-generator',
],
only: _only,
retainLines: true,
sourceMaps: 'inline',
babelrc: false,
};
}
module.exports = exports = registerOnly;
exports.config = config;