diff --git a/scripts/release/prepare-stable-commands/prune-package-registry-metadata.js b/scripts/release/prepare-stable-commands/prune-package-registry-metadata.js new file mode 100644 index 000000000000..e659b76f58bc --- /dev/null +++ b/scripts/release/prepare-stable-commands/prune-package-registry-metadata.js @@ -0,0 +1,31 @@ +#!/usr/bin/env node + +'use strict'; + +const {logPromise} = require('../utils'); +const {readJson, writeJson} = require('fs-extra'); +const {join} = require('path'); + +const run = async ({cwd, packages}) => { + const nodeModulesPath = join(cwd, 'build/node_modules'); + + for (let i = 0; i < packages.length; i++) { + const packageName = packages[i]; + const packageJSONPath = join(nodeModulesPath, packageName, 'package.json'); + const packageJSON = await readJson(packageJSONPath); + + // NPM adds a lot of metadata fields on checkout. + // It's nice to strip these before re-publishing the package. + for (let key in packageJSON) { + if (key.startsWith('_')) { + delete packageJSON[key]; + } + } + + await writeJson(packageJSONPath, packageJSON, {spaces: 2}); + } +}; + +module.exports = async params => { + return logPromise(run(params), 'Pruning package registry metadata'); +}; diff --git a/scripts/release/prepare-stable.js b/scripts/release/prepare-stable.js index 4e290574b17d..4808cfc82675 100755 --- a/scripts/release/prepare-stable.js +++ b/scripts/release/prepare-stable.js @@ -10,6 +10,7 @@ const confirmStableVersionNumbers = require('./prepare-stable-commands/confirm-s const guessStableVersionNumbers = require('./prepare-stable-commands/guess-stable-version-numbers'); const parseParams = require('./prepare-stable-commands/parse-params'); const printPrereleaseSummary = require('./shared-commands/print-prerelease-summary'); +const prunePackageRegistryMetadata = require('./prepare-stable-commands/prune-package-registry-metadata'); const testPackagingFixture = require('./shared-commands/test-packaging-fixture'); const testTracingFixture = require('./shared-commands/test-tracing-fixture'); const updateStableVersionNumbers = require('./prepare-stable-commands/update-stable-version-numbers'); @@ -28,6 +29,7 @@ const run = async () => { await checkOutPackages(params); await guessStableVersionNumbers(params, versionsMap); await confirmStableVersionNumbers(params, versionsMap); + await prunePackageRegistryMetadata(params); await updateStableVersionNumbers(params, versionsMap); if (!params.skipTests) {