From 20874b4305f76d531876f174fa3aab385bf763eb Mon Sep 17 00:00:00 2001 From: rosen-vladimirov Date: Wed, 13 Feb 2019 16:57:42 +0200 Subject: [PATCH] chore: skip tns_modules cleanup from CLI In case `--bundle` is passed CLI tries to clean the `tns_modules` directory produced from previous prepare operations. However, this is not required in latest versions as webpack cleans the directory on its own. The current clean was required for Webpack before 0.14.0, particularly the one used with 3.x versions of NativeScript. Delete unit test that is no longer relevant, as it tests functionality that is now handled by `nativescript-dev-webpack` plugin. --- lib/definitions/platform.d.ts | 1 - .../node-modules/node-modules-builder.ts | 24 +++++-------------- test/npm-support.ts | 22 ----------------- 3 files changed, 6 insertions(+), 41 deletions(-) diff --git a/lib/definitions/platform.d.ts b/lib/definitions/platform.d.ts index 5d29921748..ac8874cea1 100644 --- a/lib/definitions/platform.d.ts +++ b/lib/definitions/platform.d.ts @@ -284,7 +284,6 @@ interface INodeModulesBuilderData { interface INodeModulesBuilder { prepareNodeModules(opts: INodeModulesBuilderData): Promise; prepareJSNodeModules(opts: INodeModulesBuilderData): Promise; - cleanNodeModules(absoluteOutputPath: string): void; } interface INodeModulesDependenciesBuilder { diff --git a/lib/tools/node-modules/node-modules-builder.ts b/lib/tools/node-modules/node-modules-builder.ts index aad4a34fdd..17f1c27317 100644 --- a/lib/tools/node-modules/node-modules-builder.ts +++ b/lib/tools/node-modules/node-modules-builder.ts @@ -1,4 +1,3 @@ -import * as shelljs from "shelljs"; import { TnsModulesCopy, NpmPluginPrepare } from "./node-modules-dest-copy"; export class NodeModulesBuilder implements INodeModulesBuilder { @@ -23,20 +22,14 @@ export class NodeModulesBuilder implements INodeModulesBuilder { const { nodeModulesData } = opts; const productionDependencies = this.$nodeModulesDependenciesBuilder.getProductionDependencies(nodeModulesData.projectData.projectDir); - if (opts.copyNodeModules) { + if (opts.copyNodeModules && !nodeModulesData.appFilesUpdaterOptions.bundle) { this.initialPrepareNodeModules(opts, productionDependencies); - } else if (nodeModulesData.appFilesUpdaterOptions.bundle) { - this.cleanNodeModules(nodeModulesData.absoluteOutputPath); } return productionDependencies; } - public cleanNodeModules(absoluteOutputPath: string): void { - shelljs.rm("-rf", absoluteOutputPath); - } - - private initialPrepareNodeModules(opts: INodeModulesBuilderData, productionDependencies: IDependencyData[]): IDependencyData[] { + private initialPrepareNodeModules(opts: INodeModulesBuilderData, productionDependencies: IDependencyData[]): void { const { nodeModulesData, release } = opts; if (!this.$fs.exists(nodeModulesData.absoluteOutputPath)) { @@ -44,16 +37,11 @@ export class NodeModulesBuilder implements INodeModulesBuilder { nodeModulesData.lastModifiedTime = null; } - if (!nodeModulesData.appFilesUpdaterOptions.bundle) { - const tnsModulesCopy: TnsModulesCopy = this.$injector.resolve(TnsModulesCopy, { - outputRoot: nodeModulesData.absoluteOutputPath - }); - tnsModulesCopy.copyModules({ dependencies: productionDependencies, release }); - } else { - this.cleanNodeModules(nodeModulesData.absoluteOutputPath); - } + const tnsModulesCopy: TnsModulesCopy = this.$injector.resolve(TnsModulesCopy, { + outputRoot: nodeModulesData.absoluteOutputPath + }); - return productionDependencies; + tnsModulesCopy.copyModules({ dependencies: productionDependencies, release }); } } diff --git a/test/npm-support.ts b/test/npm-support.ts index e917bf4dd3..cb6bb86eed 100644 --- a/test/npm-support.ts +++ b/test/npm-support.ts @@ -294,28 +294,6 @@ describe("Npm support tests", () => { assert.isTrue(filteredResults.length === 1); }); - - it("Ensures that tns_modules absent when bundling", async () => { - const fs = testInjector.resolve("fs"); - const options = testInjector.resolve("options"); - const tnsModulesFolderPath = path.join(appDestinationFolderPath, "app", "tns_modules"); - - try { - options.bundle = false; - await preparePlatform(testInjector); - assert.isTrue(fs.exists(tnsModulesFolderPath), "tns_modules created first"); - - options.bundle = true; - await preparePlatform(testInjector); - assert.isFalse(fs.exists(tnsModulesFolderPath), "tns_modules deleted when bundling"); - - options.bundle = false; - await preparePlatform(testInjector); - assert.isTrue(fs.exists(tnsModulesFolderPath), "tns_modules recreated"); - } finally { - options.bundle = false; - } - }); }); describe("Flatten npm modules tests", () => {