From e37c45f6c918af949a63e39bd8ea4f2c8cd41db7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20L=C3=BCthy?= Date: Sun, 2 Jul 2017 18:54:47 +0200 Subject: [PATCH] feat: add support for Serverless node devDeps exclusion feature Serverless 0.16.0 introduced a feature which excludes Node.js dev dependencies from .zip files. The feature uses package.json to find which dependencies can be excluded. https://github.com/serverless/serverless/pull/3737 This commit adds the package.json to the .build folder, so that Serverless can find the package.json file. --- example/package.json | 4 +++- src/index.ts | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/example/package.json b/example/package.json index f140d8a1..233f6498 100644 --- a/example/package.json +++ b/example/package.json @@ -1,7 +1,9 @@ { "dependencies": { + "lodash": "^4.17.4" + }, + "devDependencies": { "@types/lodash": "^4.14.63", - "lodash": "^4.17.4", "serverless-plugin-typescript": "^0.1.2" } } diff --git a/src/index.ts b/src/index.ts index 0025e213..af96ef73 100644 --- a/src/index.ts +++ b/src/index.ts @@ -91,6 +91,11 @@ class ServerlessPlugin { fs.symlinkSync(path.resolve('node_modules'), path.resolve(path.join(buildFolder, 'node_modules'))) } + // include package.json into build so Serverless can exlcude devDeps during packaging + if (!fs.existsSync(path.resolve(path.join(buildFolder, 'package.json')))) { + fs.symlinkSync(path.resolve('package.json'), path.resolve(path.join(buildFolder, 'package.json'))) + } + // include any "extras" from the "include" section if (this.serverless.service.package.include && this.serverless.service.package.include.length > 0) { const files = await globby(this.serverless.service.package.include)