From 24185cd317fa7c01bb564192ec02a21cbf152d6b Mon Sep 17 00:00:00 2001 From: Zoltan Kochan Date: Sat, 8 Dec 2018 22:13:35 +0200 Subject: [PATCH] fix: create node_modules when writing node_modules/.shrinkwrap.yaml --- packages/shrinkwrap-file/src/write.ts | 13 ++++++++++--- packages/shrinkwrap-file/test/read.ts | 1 - 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/shrinkwrap-file/src/write.ts b/packages/shrinkwrap-file/src/write.ts index 49d46c9f5c..2aea357952 100644 --- a/packages/shrinkwrap-file/src/write.ts +++ b/packages/shrinkwrap-file/src/write.ts @@ -32,13 +32,14 @@ export function writeWantedOnly ( return writeShrinkwrap(WANTED_SHRINKWRAP_FILENAME, pkgPath, wantedShrinkwrap, opts) } -export function writeCurrentOnly ( +export async function writeCurrentOnly ( pkgPath: string, currentShrinkwrap: Shrinkwrap, opts?: { forceSharedFormat?: boolean, }, ) { + await mkdirp(path.join(pkgPath, 'node_modules')) return writeShrinkwrap(CURRENT_SHRINKWRAP_FILENAME, pkgPath, currentShrinkwrap, opts) } @@ -146,7 +147,10 @@ export default function write ( if (wantedShrinkwrap === currentShrinkwrap) { return Promise.all([ writeFileAtomic(wantedShrinkwrapPath, yamlDoc), - mkdirp(path.dirname(currentShrinkwrapPath)).then(() => writeFileAtomic(currentShrinkwrapPath, yamlDoc)), + (async () => { + await mkdirp(path.dirname(currentShrinkwrapPath)) + await writeFileAtomic(currentShrinkwrapPath, yamlDoc) + })(), ]) } @@ -159,6 +163,9 @@ export default function write ( return Promise.all([ writeFileAtomic(wantedShrinkwrapPath, yamlDoc), - mkdirp(path.dirname(currentShrinkwrapPath)).then(() => writeFileAtomic(currentShrinkwrapPath, currentYamlDoc)), + (async () => { + await mkdirp(path.dirname(currentShrinkwrapPath)) + await writeFileAtomic(currentShrinkwrapPath, currentYamlDoc) + })(), ]) } diff --git a/packages/shrinkwrap-file/test/read.ts b/packages/shrinkwrap-file/test/read.ts index 688490bc61..cf61ac33b1 100644 --- a/packages/shrinkwrap-file/test/read.ts +++ b/packages/shrinkwrap-file/test/read.ts @@ -150,7 +150,6 @@ test('writeCurrentOnly()', async t => { registry: 'https://registry.npmjs.org', shrinkwrapVersion: 3, } - await mkdirp(path.join(projectPath, 'node_modules')) await writeCurrentOnly(projectPath, wantedShrinkwrap) t.equal(await readWanted(projectPath, { ignoreIncompatible: false }), null) t.deepEqual(await readCurrent(projectPath, { ignoreIncompatible: false }), wantedShrinkwrap)