From b22ce5637cdce4b5b0ec4718c602fca0289cb2b1 Mon Sep 17 00:00:00 2001 From: Emil Tabakov Date: Wed, 7 Jun 2017 15:49:18 +0300 Subject: [PATCH 1/5] Remove dev dependencies from node modules folder #2856 --- .../node-modules/node-modules-dest-copy.ts | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/tools/node-modules/node-modules-dest-copy.ts b/lib/tools/node-modules/node-modules-dest-copy.ts index c035f3b197..8018299095 100644 --- a/lib/tools/node-modules/node-modules-dest-copy.ts +++ b/lib/tools/node-modules/node-modules-dest-copy.ts @@ -51,6 +51,27 @@ export class TnsModulesCopy { // remove platform-specific files (processed separately by plugin services) shelljs.rm("-rf", path.join(targetPackageDir, "platforms")); + + //leave only production dependencies + let packageJsonFilePath = path.join(dependency.directory, "package.json"); + if (!this.$fs.exists(packageJsonFilePath)) { + return; + } + + let packageJsonContent = this.$fs.readJson(packageJsonFilePath); + let productionDependencies = packageJsonContent.dependencies; + + let dependenciesFolder = path.join(targetPackageDir, "node_modules"); + if (this.$fs.exists(dependenciesFolder)) { + let dependencies = this.$fs.readDirectory(dependenciesFolder); + + for (let i = 0; i < dependencies.length; i++) { + let dir = dependencies[i]; + if (productionDependencies == null || !productionDependencies.hasOwnProperty(dir)) { + shelljs.rm("-rf", path.join(dependenciesFolder, dir)); + } + } + } } } } From dc78584c99b8fac814b1d4290745da5942b887f3 Mon Sep 17 00:00:00 2001 From: Emil Tabakov Date: Wed, 7 Jun 2017 18:13:13 +0300 Subject: [PATCH 2/5] Extract method for removing non production dependencies --- .../node-modules/node-modules-dest-copy.ts | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/lib/tools/node-modules/node-modules-dest-copy.ts b/lib/tools/node-modules/node-modules-dest-copy.ts index 8018299095..29b38d7e98 100644 --- a/lib/tools/node-modules/node-modules-dest-copy.ts +++ b/lib/tools/node-modules/node-modules-dest-copy.ts @@ -52,24 +52,27 @@ export class TnsModulesCopy { // remove platform-specific files (processed separately by plugin services) shelljs.rm("-rf", path.join(targetPackageDir, "platforms")); - //leave only production dependencies - let packageJsonFilePath = path.join(dependency.directory, "package.json"); - if (!this.$fs.exists(packageJsonFilePath)) { - return; - } + this.removeNotProductionDependencies(dependency, targetPackageDir); + } + } + + private removeNotProductionDependencies(dependency: IDependencyData, targetPackageDir: string): void { + let packageJsonFilePath = path.join(dependency.directory, "package.json"); + if (!this.$fs.exists(packageJsonFilePath)) { + return; + } - let packageJsonContent = this.$fs.readJson(packageJsonFilePath); - let productionDependencies = packageJsonContent.dependencies; + let packageJsonContent = this.$fs.readJson(packageJsonFilePath); + let productionDependencies = packageJsonContent.dependencies; - let dependenciesFolder = path.join(targetPackageDir, "node_modules"); - if (this.$fs.exists(dependenciesFolder)) { - let dependencies = this.$fs.readDirectory(dependenciesFolder); + let dependenciesFolder = path.join(targetPackageDir, "node_modules"); + if (this.$fs.exists(dependenciesFolder)) { + let dependencies = this.$fs.readDirectory(dependenciesFolder); - for (let i = 0; i < dependencies.length; i++) { - let dir = dependencies[i]; - if (productionDependencies == null || !productionDependencies.hasOwnProperty(dir)) { - shelljs.rm("-rf", path.join(dependenciesFolder, dir)); - } + for (let i = 0; i < dependencies.length; i++) { + let dir = dependencies[i]; + if (productionDependencies == null || !productionDependencies.hasOwnProperty(dir)) { + shelljs.rm("-rf", path.join(dependenciesFolder, dir)); } } } From 9199f227043c81f7bfcc85fa6694ee986e9d7e6c Mon Sep 17 00:00:00 2001 From: Emil Tabakov Date: Wed, 7 Jun 2017 18:35:29 +0300 Subject: [PATCH 3/5] Fix typo in method name --- lib/tools/node-modules/node-modules-dest-copy.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/tools/node-modules/node-modules-dest-copy.ts b/lib/tools/node-modules/node-modules-dest-copy.ts index 29b38d7e98..bee3e7bf15 100644 --- a/lib/tools/node-modules/node-modules-dest-copy.ts +++ b/lib/tools/node-modules/node-modules-dest-copy.ts @@ -52,11 +52,11 @@ export class TnsModulesCopy { // remove platform-specific files (processed separately by plugin services) shelljs.rm("-rf", path.join(targetPackageDir, "platforms")); - this.removeNotProductionDependencies(dependency, targetPackageDir); + this.removeNonProductionDependencies(dependency, targetPackageDir); } } - private removeNotProductionDependencies(dependency: IDependencyData, targetPackageDir: string): void { + private removeNonProductionDependencies(dependency: IDependencyData, targetPackageDir: string): void { let packageJsonFilePath = path.join(dependency.directory, "package.json"); if (!this.$fs.exists(packageJsonFilePath)) { return; From b26a124b50a62755303ea5cf8cbb49d1561e9ad1 Mon Sep 17 00:00:00 2001 From: Emil Tabakov Date: Wed, 7 Jun 2017 18:42:32 +0300 Subject: [PATCH 4/5] Rewrite the for to match the style of the rest of the codebase --- lib/tools/node-modules/node-modules-dest-copy.ts | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/lib/tools/node-modules/node-modules-dest-copy.ts b/lib/tools/node-modules/node-modules-dest-copy.ts index bee3e7bf15..22833acd95 100644 --- a/lib/tools/node-modules/node-modules-dest-copy.ts +++ b/lib/tools/node-modules/node-modules-dest-copy.ts @@ -68,13 +68,8 @@ export class TnsModulesCopy { let dependenciesFolder = path.join(targetPackageDir, "node_modules"); if (this.$fs.exists(dependenciesFolder)) { let dependencies = this.$fs.readDirectory(dependenciesFolder); - - for (let i = 0; i < dependencies.length; i++) { - let dir = dependencies[i]; - if (productionDependencies == null || !productionDependencies.hasOwnProperty(dir)) { - shelljs.rm("-rf", path.join(dependenciesFolder, dir)); - } - } + dependencies.filter(dir => !!productionDependencies || !productionDependencies.hasOwnProperty(dir)) + .map(dir => shelljs.rm("-rf", path.join(dependenciesFolder, dir))); } } } From 7ba63e1ed71894cf6036be51c4a7d214558cdd14 Mon Sep 17 00:00:00 2001 From: Emil Tabakov Date: Thu, 8 Jun 2017 16:03:20 +0300 Subject: [PATCH 5/5] Replace strings with constants and other minor improvements --- lib/tools/node-modules/node-modules-dest-copy.ts | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/tools/node-modules/node-modules-dest-copy.ts b/lib/tools/node-modules/node-modules-dest-copy.ts index 22833acd95..cf904d28e6 100644 --- a/lib/tools/node-modules/node-modules-dest-copy.ts +++ b/lib/tools/node-modules/node-modules-dest-copy.ts @@ -29,7 +29,7 @@ export class TnsModulesCopy { let matchPattern = this.$options.release ? "**/*.ts" : "**/*.d.ts"; allFiles.filter(file => minimatch(file, matchPattern, { nocase: true })).map(file => this.$fs.deleteFile(file)); - shelljs.rm("-rf", path.join(tnsCoreModulesResourcePath, "node_modules")); + shelljs.rm("-rf", path.join(tnsCoreModulesResourcePath, constants.NODE_MODULES_FOLDER_NAME)); } } } @@ -57,19 +57,19 @@ export class TnsModulesCopy { } private removeNonProductionDependencies(dependency: IDependencyData, targetPackageDir: string): void { - let packageJsonFilePath = path.join(dependency.directory, "package.json"); + const packageJsonFilePath = path.join(dependency.directory, constants.PACKAGE_JSON_FILE_NAME); if (!this.$fs.exists(packageJsonFilePath)) { return; } - let packageJsonContent = this.$fs.readJson(packageJsonFilePath); - let productionDependencies = packageJsonContent.dependencies; + const packageJsonContent = this.$fs.readJson(packageJsonFilePath); + const productionDependencies = packageJsonContent.dependencies; - let dependenciesFolder = path.join(targetPackageDir, "node_modules"); + const dependenciesFolder = path.join(targetPackageDir, constants.NODE_MODULES_FOLDER_NAME); if (this.$fs.exists(dependenciesFolder)) { - let dependencies = this.$fs.readDirectory(dependenciesFolder); + const dependencies = this.$fs.readDirectory(dependenciesFolder); dependencies.filter(dir => !!productionDependencies || !productionDependencies.hasOwnProperty(dir)) - .map(dir => shelljs.rm("-rf", path.join(dependenciesFolder, dir))); + .forEach(dir => shelljs.rm("-rf", path.join(dependenciesFolder, dir))); } } }