mirror of
https://github.com/react/react-native.git
synced 2026-09-28 21:33:11 +08:00
Summary: Pull Request resolved: https://github.com/react/react-native/pull/57611 Directly follows D112733139 (Metro). **Motivation** - New Node builtins are *only* available under the prefix (e.g. `node:sqlite`), as this allows Node to introduce them without ecosystem-breaking changes, so this is the direction of travel and the only choice that'll allow consistency. - Encouraging them and grouping them separately makes it easier to reason about a module's 3rd party dependencies. Changelog: [Internal] Reviewed By: robhogan Differential Revision: D112803684 fbshipit-source-id: 40668d746a7151b3aa4800ff8af997902a18d198
46 lines
1.2 KiB
JavaScript
46 lines
1.2 KiB
JavaScript
/**
|
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @flow
|
|
* @format
|
|
*/
|
|
|
|
require('../shared/babelRegister').registerForScript();
|
|
|
|
const {promises: fs} = require('node:fs');
|
|
const path = require('node:path');
|
|
|
|
// "prepack" script to prepare JavaScript packages for publishing.
|
|
//
|
|
// We use this to copy over fields from "publishConfig" to the root of each
|
|
// package.json, which is not supported in Yarn v1.
|
|
|
|
async function prepack() {
|
|
const pkgJsonPath = path.join(process.cwd(), './package.json');
|
|
const contents = JSON.parse(await fs.readFile(pkgJsonPath, 'utf8'));
|
|
|
|
if (
|
|
path.dirname(pkgJsonPath).split(path.sep).slice(-2, -1)[0] !== 'packages'
|
|
) {
|
|
console.error('Error: prepack.js must be run from a package directory');
|
|
process.exitCode = 1;
|
|
return;
|
|
}
|
|
|
|
if (contents.publishConfig != null) {
|
|
for (const key of Object.keys(contents.publishConfig)) {
|
|
contents[key] = contents.publishConfig[key];
|
|
}
|
|
}
|
|
delete contents.publishConfig;
|
|
|
|
await fs.writeFile(pkgJsonPath, JSON.stringify(contents, null, 2) + '\n');
|
|
}
|
|
|
|
if (require.main === module) {
|
|
void prepack();
|
|
}
|