From c4754a9b55ca3164a0941cdf219e7895367a92bc Mon Sep 17 00:00:00 2001 From: Zaid Abdulla Date: Tue, 26 Oct 2021 10:33:33 -0700 Subject: [PATCH] Strip dev deps from new lock file format --- build/build.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/build/build.ts b/build/build.ts index f92d152..1fe62ab 100644 --- a/build/build.ts +++ b/build/build.ts @@ -74,6 +74,7 @@ function rmDirSync(dirPath): void { fs.rmdirSync(dirPath); } +// For lockfileVersion = 1 function stripDevDeps(deps): void { if (!deps["dependencies"]) return; for (const [k, v] of Object.entries(deps["dependencies"])) { @@ -83,6 +84,15 @@ function stripDevDeps(deps): void { if (!Object.keys(deps["dependencies"]).length) delete deps["dependencies"]; } +// For lockfileVersion = 2 +function stripDevDeps2(deps): void { + if (!deps["packages"]) return; + for (const [k, v] of Object.entries(deps["packages"])) { + delete v["devDependencies"]; + if (v["dev"]) delete deps["packages"][k]; + } +} + function xmlTostring(xml): string { const children = []; for (const c of xml.children || []) children.push(xmlTostring(c)); @@ -140,6 +150,7 @@ async function init(): Promise { ); npmShrinkwrapJson["version"] = packageJson["version"]; stripDevDeps(npmShrinkwrapJson); + stripDevDeps2(npmShrinkwrapJson); fs.writeFileSync( path.resolve(OUTPUT_DIR, "npm-shrinkwrap.json"), JSON.stringify(npmShrinkwrapJson, null, 2)