mirror of
https://github.com/zebrajr/react.git
synced 2025-12-06 12:20:20 +01:00
* Enable Yarn workspaces for packages/* * Move src/isomorphic/* into packages/react/src/* * Create index.js stubs for all packages in packages/* This makes the test pass again, but breaks the build because npm/ folders aren't used yet. I'm not sure if we'll keep this structure--I'll just keep working and fix the build after it settles down. * Put FB entry point for react-dom into packages/* * Move src/renderers/testing/* into packages/react-test-renderer/src/* Note that this is currently broken because Jest ignores node_modules, and so Yarn linking makes Jest skip React source when transforming. * Remove src/node_modules It is now unnecessary. Some tests fail though. * Add a hacky workaround for Jest/Workspaces issue Jest sees node_modules and thinks it's third party code. This is a hacky way to teach Jest to still transform anything in node_modules/react* if it resolves outside of node_modules (such as to our packages/*) folder. I'm not very happy with this and we should revisit. * Add a fake react-native package * Move src/renderers/art/* into packages/react-art/src/* * Move src/renderers/noop/* into packages/react-noop-renderer/src/* * Move src/renderers/dom/* into packages/react-dom/src/* * Move src/renderers/shared/fiber/* into packages/react-reconciler/src/* * Move DOM/reconciler tests I previously forgot to move * Move src/renderers/native-*/* into packages/react-native-*/src/* * Move shared code into packages/shared It's not super clear how to organize this properly yet. * Add back files that somehow got lost * Fix the build * Prettier * Add missing license headers * Fix an issue that caused mocks to get included into build * Update other references to src/ * Re-run Prettier * Fix lint * Fix weird Flow violation I didn't change this file but Flow started complaining. Caleb said this annotation was unnecessarily using $Abstract though so I removed it. * Update sizes * Fix stats script * Fix packaging fixtures Use file: instead of NODE_PATH since NODE_PATH. NODE_PATH trick only worked because we had no react/react-dom in root node_modules, but now we do. file: dependency only works as I expect in Yarn, so I moved the packaging fixtures to use Yarn and committed lockfiles. Verified that the page shows up. * Fix art fixture * Fix reconciler fixture * Fix SSR fixture * Rename native packages
49 lines
1.3 KiB
JavaScript
49 lines
1.3 KiB
JavaScript
const fs = require('fs');
|
|
const path = require('path');
|
|
const child_process = require('child_process');
|
|
|
|
const fixtureDirs = fs.readdirSync(__dirname).filter(file => {
|
|
return fs.statSync(path.join(__dirname, file)).isDirectory();
|
|
});
|
|
|
|
const cmdArgs = [
|
|
{cmd: 'yarn', args: ['install']},
|
|
{cmd: 'yarn', args: ['build']},
|
|
];
|
|
|
|
function buildFixture(cmdArg, path) {
|
|
const opts = {
|
|
cwd: path,
|
|
stdio: 'inherit',
|
|
};
|
|
const result = child_process.spawnSync(cmdArg.cmd, cmdArg.args, opts);
|
|
if (result.status !== 0) {
|
|
throw new Error(`Failed to build fixtures!`);
|
|
}
|
|
}
|
|
|
|
fixtureDirs.forEach(dir => {
|
|
cmdArgs.forEach(cmdArg => {
|
|
// we only care about directories that have DEV and PROD directories in
|
|
// otherwise they don't need to be built
|
|
const devPath = path.join(__dirname, dir, 'dev');
|
|
|
|
if (fs.existsSync(devPath)) {
|
|
buildFixture(cmdArg, devPath);
|
|
}
|
|
const prodPath = path.join(__dirname, dir, 'prod');
|
|
|
|
if (fs.existsSync(prodPath)) {
|
|
buildFixture(cmdArg, prodPath);
|
|
}
|
|
});
|
|
});
|
|
|
|
console.log('-------------------------');
|
|
console.log('All fixtures were built!');
|
|
console.log('Now ensure all frames display a welcome message:');
|
|
console.log(' npm install -g serve');
|
|
console.log(' serve ../..');
|
|
console.log(' open http://localhost:5000/fixtures/packaging/');
|
|
console.log('-------------------------');
|