mirror of
https://github.com/zebrajr/react.git
synced 2025-12-06 12:20:20 +01:00
* Move build/packages/* to build/node_modules/* This fixes Node resolution in that folder and lets us require() packages in it in Node shell for manual testing. * Link fixtures to packages/node_modules This updates the location and also uses link: instead of file: to avoid Yarn caching the folder contents.
79 lines
2.0 KiB
JavaScript
79 lines
2.0 KiB
JavaScript
'use strict';
|
|
|
|
const chalk = require('chalk');
|
|
const path = require('path');
|
|
const spawnSync = require('child_process').spawnSync;
|
|
const glob = require('glob');
|
|
|
|
const extension = process.platform === 'win32' ? '.cmd' : '';
|
|
|
|
// Performs sanity checks on bundles *built* by Rollup.
|
|
// Helps catch Rollup regressions.
|
|
function lint({format, filePatterns}) {
|
|
console.log(`Linting ${format} bundles...`);
|
|
const result = spawnSync(
|
|
path.join('node_modules', '.bin', 'eslint' + extension),
|
|
[
|
|
...filePatterns,
|
|
'--config',
|
|
path.join(__dirname, `eslintrc.${format}.js`),
|
|
// Disregard our ESLint rules that apply to the source.
|
|
'--no-eslintrc',
|
|
// Use a different ignore file.
|
|
'--ignore-path',
|
|
path.join(__dirname, 'eslintignore'),
|
|
],
|
|
{
|
|
// Allow colors to pass through
|
|
stdio: 'inherit',
|
|
}
|
|
);
|
|
if (result.status !== 0) {
|
|
console.error(chalk.red(`Linting of ${format} bundles has failed.`));
|
|
process.exit(result.status);
|
|
} else {
|
|
console.log(chalk.green(`Linted ${format} bundles successfully!`));
|
|
console.log();
|
|
}
|
|
}
|
|
|
|
function checkFilesExist(bundle) {
|
|
const {format, filePatterns} = bundle;
|
|
filePatterns.forEach(pattern => {
|
|
console.log(`Checking if files exist in ${pattern}...`);
|
|
const files = glob.sync(pattern);
|
|
if (files.length === 0) {
|
|
console.error(chalk.red(`Found no ${format} bundles in ${pattern}`));
|
|
process.exit(1);
|
|
} else {
|
|
console.log(chalk.green(`Found ${files.length} bundles.`));
|
|
console.log();
|
|
}
|
|
});
|
|
return bundle;
|
|
}
|
|
|
|
const bundles = [
|
|
{
|
|
format: 'fb',
|
|
filePatterns: [`./build/facebook-www/*.js`],
|
|
},
|
|
{
|
|
format: 'rn',
|
|
filePatterns: [`./build/{react-cs,react-native,react-rt}/*.js`],
|
|
},
|
|
{
|
|
format: 'umd',
|
|
filePatterns: [`./build/node_modules/*/umd/*.js`],
|
|
},
|
|
{
|
|
format: 'cjs',
|
|
filePatterns: [
|
|
`./build/node_modules/*/*.js`,
|
|
`./build/node_modules/*/cjs/*.js`,
|
|
],
|
|
},
|
|
];
|
|
|
|
bundles.map(checkFilesExist).map(lint);
|