@samitouri / QOS-React-2 / commits / 4846809370

Prune NPM metadata fields from packages before re-publishing (#14617)

Brian Vaughn committed Jan 17, 2019 at 14:34 UTC 4846809370737f13c0465ac7b83764b408c6e732
2 files changed +33
scripts/release/prepare-stable-commands/prune-package-registry-metadata.js new
+31
@@ -0,0 +1,31 @@
1 +#!/usr/bin/env node
2 +
3 +'use strict';
4 +
5 +const {logPromise} = require('../utils');
6 +const {readJson, writeJson} = require('fs-extra');
7 +const {join} = require('path');
8 +
9 +const run = async ({cwd, packages}) => {
10 + const nodeModulesPath = join(cwd, 'build/node_modules');
11 +
12 + for (let i = 0; i < packages.length; i++) {
13 + const packageName = packages[i];
14 + const packageJSONPath = join(nodeModulesPath, packageName, 'package.json');
15 + const packageJSON = await readJson(packageJSONPath);
16 +
17 + // NPM adds a lot of metadata fields on checkout.
18 + // It's nice to strip these before re-publishing the package.
19 + for (let key in packageJSON) {
20 + if (key.startsWith('_')) {
21 + delete packageJSON[key];
22 + }
23 + }
24 +
25 + await writeJson(packageJSONPath, packageJSON, {spaces: 2});
26 + }
27 +};
28 +
29 +module.exports = async params => {
30 + return logPromise(run(params), 'Pruning package registry metadata');
31 +};
scripts/release/prepare-stable.js
+2
@@ -10,6 +10,7 @@ const confirmStableVersionNumbers = require('./prepare-stable-commands/confirm-s
10 const guessStableVersionNumbers = require('./prepare-stable-commands/guess-stable-version-numbers');
11 const parseParams = require('./prepare-stable-commands/parse-params');
12 const printPrereleaseSummary = require('./shared-commands/print-prerelease-summary');
13 +const prunePackageRegistryMetadata = require('./prepare-stable-commands/prune-package-registry-metadata');
14 const testPackagingFixture = require('./shared-commands/test-packaging-fixture');
15 const testTracingFixture = require('./shared-commands/test-tracing-fixture');
16 const updateStableVersionNumbers = require('./prepare-stable-commands/update-stable-version-numbers');
@@ -28,6 +29,7 @@ const run = async () => {
29 await checkOutPackages(params);
30 await guessStableVersionNumbers(params, versionsMap);
31 await confirmStableVersionNumbers(params, versionsMap);
32 + await prunePackageRegistryMetadata(params);
33 await updateStableVersionNumbers(params, versionsMap);
34
35 if (!params.skipTests) {