diff --git a/e2e/Makefile b/e2e/Makefile index decc6cbd..6e7a7c78 100644 --- a/e2e/Makefile +++ b/e2e/Makefile @@ -1,4 +1,4 @@ -test-e2e: test-e2e-minimal test-e2e-individually test-e2e-complete +test-e2e: test-e2e-minimal test-e2e-individually test-e2e-complete test-e2e-config build: npm run build @@ -23,3 +23,7 @@ test-e2e-complete: build cd ./.test-artifacts/complete/.serverless && unzip complete-example.zip npx jest -c jest.config.e2e.js --ci ./e2e/complete.test.ts rm -fr ./.test-artifacts + +test-e2e-config: build + rm -fr ./.test-artifacts && mkdir -p ./.test-artifacts/config && rsync -r ./examples/config/ ./.test-artifacts/config/ + cd ./.test-artifacts/config && pnpm install && npx sls package diff --git a/examples/config/config.js b/examples/config/config.js index 016a74b8..9f2c4d64 100644 --- a/examples/config/config.js +++ b/examples/config/config.js @@ -1,6 +1,6 @@ module.exports = () => { return { - packager: 'npm', + packager: 'pnpm', bundle: true, minify: true, sourcemap: false, diff --git a/src/packagers/npm.ts b/src/packagers/npm.ts index 913dcc67..69e7c31c 100644 --- a/src/packagers/npm.ts +++ b/src/packagers/npm.ts @@ -271,6 +271,7 @@ export class NPM implements Packager { async install(cwd: string, extraArgs: Array) { const command = /^win/.test(process.platform) ? 'npm.cmd' : 'npm'; + const args = ['install', ...extraArgs]; await spawnProcess(command, args, { cwd }); diff --git a/src/packagers/pnpm.ts b/src/packagers/pnpm.ts index b714e789..3c562c14 100644 --- a/src/packagers/pnpm.ts +++ b/src/packagers/pnpm.ts @@ -41,7 +41,7 @@ export class Pnpm implements Packager { const processOutput = await spawnProcess(command, args, { cwd }); const depJson = processOutput.stdout; - return JSON.parse(depJson); + return JSON.parse(depJson)[0]; } catch (err) { if (err instanceof SpawnError) { // Only exit with an error if we have critical npm errors for 2nd level inside @@ -89,10 +89,10 @@ export class Pnpm implements Packager { return lockfile; } - async install(cwd: string, extraArgs: string[], useLockfile = true) { + async install(cwd: string, extraArgs: Array) { const command = /^win/.test(process.platform) ? 'pnpm.cmd' : 'pnpm'; - const args = useLockfile ? ['install', '--frozen-lockfile', ...extraArgs] : ['install', ...extraArgs]; + const args = ['install', ...extraArgs]; await spawnProcess(command, args, { cwd }); } diff --git a/src/utils.ts b/src/utils.ts index cd348a83..b2fa42f0 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -93,6 +93,7 @@ export const findProjectRoot = (rootDir?: string) => pipe( IOO.fromNullable(rootDir), IOO.fold(() => findUpIO('yarn.lock'), IOO.of), + IOO.fold(() => findUpIO('pnpm-lock.yaml'), IOO.of), IOO.fold(() => findUpIO('package-lock.json'), IOO.of), IOO.toUndefined )();