From 2d931b8f1196e2e11e65c29f2282a4cefaff1443 Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Sun, 26 Dec 2021 00:46:53 +0300 Subject: [PATCH] Add pnpm commands for migration guide --- fixtures/legacy-pnpm/package.json | 6 ++++++ fixtures/legacy-pnpm/pnpm-lock.yaml | 0 packages/size-limit/create-help.js | 3 +++ .../test/__snapshots__/run.test.js.snap | 17 +++++++++++++++++ packages/size-limit/test/run.test.js | 4 ++++ 5 files changed, 30 insertions(+) create mode 100644 fixtures/legacy-pnpm/package.json create mode 100644 fixtures/legacy-pnpm/pnpm-lock.yaml diff --git a/fixtures/legacy-pnpm/package.json b/fixtures/legacy-pnpm/package.json new file mode 100644 index 00000000..b95529e9 --- /dev/null +++ b/fixtures/legacy-pnpm/package.json @@ -0,0 +1,6 @@ +{ + "private": true, + "devDependencies": { + "size-limit": ">= 0.0.0" + } +} diff --git a/fixtures/legacy-pnpm/pnpm-lock.yaml b/fixtures/legacy-pnpm/pnpm-lock.yaml new file mode 100644 index 00000000..e69de29b diff --git a/packages/size-limit/create-help.js b/packages/size-limit/create-help.js index f69e6ab3..81fb8957 100644 --- a/packages/size-limit/create-help.js +++ b/packages/size-limit/create-help.js @@ -10,6 +10,9 @@ function npmCommands(pkg) { if (existsSync(join(pkg.path, '..', 'yarn.lock'))) { add = 'yarn add --dev ' rm = 'yarn remove ' + } else if (existsSync(join(pkg.path, '..', 'pnpm-lock.yaml'))) { + add = 'pnpm add --save-dev ' + rm = 'pnpm remove ' } return { add, rm } } diff --git a/packages/size-limit/test/__snapshots__/run.test.js.snap b/packages/size-limit/test/__snapshots__/run.test.js.snap index 7708b225..6b87fdff 100644 --- a/packages/size-limit/test/__snapshots__/run.test.js.snap +++ b/packages/size-limit/test/__snapshots__/run.test.js.snap @@ -275,6 +275,23 @@ You need to add size-limit dependency: npm install --save-dev size-limit[3 " `; +exports[`run shows migration guide for pnpm users 1`] = ` +"Install Size Limit preset depends on type of the project + +For application, where you send JS bundle directly to users + pnpm add --save-dev @size-limit/preset-app + +For frameworks, components and big libraries + pnpm add --save-dev @size-limit/preset-big-lib + +For small (< 10 kB) libraries + pnpm add --save-dev @size-limit/preset-small-lib + +Check out docs for more complicated cases + https://github.com/ai/size-limit/ +" +`; + exports[`run shows migration guide for yarn users 1`] = ` "Install Size Limit preset depends on type of the project diff --git a/packages/size-limit/test/run.test.js b/packages/size-limit/test/run.test.js index 022659bd..cf00411d 100644 --- a/packages/size-limit/test/run.test.js +++ b/packages/size-limit/test/run.test.js @@ -140,6 +140,10 @@ describe(`run`, () => { expect(await error('legacy-yarn')).toMatchSnapshot() }) + it('shows migration guide for pnpm users', async () => { + expect(await error('legacy-pnpm')).toMatchSnapshot() + }) + it('shows migration guide for npm users: config 1, dep 0', async () => { let [process, history] = createProcess('npm-with-config-without-dev') await run(process)