This commit is contained in:
Dominic Gannaway
2017-03-07 16:21:22 +00:00
parent fc4633775a
commit 30c8371cd5
7 changed files with 207 additions and 30 deletions
+13
View File
@@ -0,0 +1,13 @@
'use strict';
const devExpressionWithCodes = require('../error-codes/dev-expression-with-codes');
const babelOptsReact = {
plugins: [
devExpressionWithCodes, // this pass has to run before `rewrite-modules`
],
};
module.exports = {
babelOptsReact,
};
+38
View File
@@ -0,0 +1,38 @@
"use strict";
const { rollup } = require('rollup');
const bundles = require('./bundles');
const babel = require('rollup-plugin-babel');
const commonjs = require('rollup-plugin-commonjs');
const alias = require('rollup-plugin-alias');
const { createModuleMap } = require('./moduleMap');
// const nodeResolve = require('rollup-plugin-node-resolve');
const external = [];
function getAliases(paths) {
return Object.assign(
createModuleMap(paths),
{
// ...
}
);
}
function getPlugins(entry, babelOpts, paths) {
return [
babel(babelOpts),
alias(getAliases(paths)),
// nodeResolve({ jsnext: true, main: true }),
commonjs(),
];
}
bundles.forEach(({babelOpts, entry, config, paths}) => (
rollup({
entry,
plugins: getPlugins(entry, babelOpts, paths),
external,
}).then(({ write }) => write(config)).catch(console.error)
));
+31
View File
@@ -0,0 +1,31 @@
'use strict';
const {
babelOptsReact,
} = require('./babel');
const bundles = [
{
config: {
dest: 'build/rollup/react.js',
format: 'umd',
moduleName: 'React',
sourceMap: false,
},
entry: 'src/umd/ReactUMDEntry.js',
babelOpts: babelOptsReact,
paths: [
'src/umd/ReactUMDEntry.js',
'src/umd/ReactWithAddonsUMDEntry.js',
'src/umd/shims/**/*.js',
'src/isomorphic/**/*.js',
'src/addons/**/*.js',
'src/ReactVersion.js',
'src/shared/**/*.js',
],
},
];
module.exports = bundles;
+33
View File
@@ -0,0 +1,33 @@
"use strict";
const { resolve, basename } = require('path');
const { sync } = require('glob');
const exclude = [
'src/**/__benchmarks__/**/*.js',
'src/**/__tests__/**/*.js',
'src/**/__mocks__/**/*.js',
]
function createModuleMap(paths) {
const moduleMap = {};
paths.forEach(path => {
const files = sync(path, exclude);
files.forEach(file => {
const moduleName = basename(file, '.js');
if (moduleName === 'ReactElementSymbol') {
console.log(file)
}
moduleMap[moduleName] = resolve(file);
});
});
return moduleMap;
}
module.exports = {
createModuleMap,
};