Skip to content

Commit 20874b4

Browse files
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.
1 parent dd01bae commit 20874b4

File tree

3 files changed

+6
-41
lines changed

3 files changed

+6
-41
lines changed

lib/definitions/platform.d.ts

-1
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,6 @@ interface INodeModulesBuilderData {
284284
interface INodeModulesBuilder {
285285
prepareNodeModules(opts: INodeModulesBuilderData): Promise<void>;
286286
prepareJSNodeModules(opts: INodeModulesBuilderData): Promise<void>;
287-
cleanNodeModules(absoluteOutputPath: string): void;
288287
}
289288

290289
interface INodeModulesDependenciesBuilder {

lib/tools/node-modules/node-modules-builder.ts

+6-18
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import * as shelljs from "shelljs";
21
import { TnsModulesCopy, NpmPluginPrepare } from "./node-modules-dest-copy";
32

43
export class NodeModulesBuilder implements INodeModulesBuilder {
@@ -23,37 +22,26 @@ export class NodeModulesBuilder implements INodeModulesBuilder {
2322
const { nodeModulesData } = opts;
2423
const productionDependencies = this.$nodeModulesDependenciesBuilder.getProductionDependencies(nodeModulesData.projectData.projectDir);
2524

26-
if (opts.copyNodeModules) {
25+
if (opts.copyNodeModules && !nodeModulesData.appFilesUpdaterOptions.bundle) {
2726
this.initialPrepareNodeModules(opts, productionDependencies);
28-
} else if (nodeModulesData.appFilesUpdaterOptions.bundle) {
29-
this.cleanNodeModules(nodeModulesData.absoluteOutputPath);
3027
}
3128

3229
return productionDependencies;
3330
}
3431

35-
public cleanNodeModules(absoluteOutputPath: string): void {
36-
shelljs.rm("-rf", absoluteOutputPath);
37-
}
38-
39-
private initialPrepareNodeModules(opts: INodeModulesBuilderData, productionDependencies: IDependencyData[]): IDependencyData[] {
32+
private initialPrepareNodeModules(opts: INodeModulesBuilderData, productionDependencies: IDependencyData[]): void {
4033
const { nodeModulesData, release } = opts;
4134

4235
if (!this.$fs.exists(nodeModulesData.absoluteOutputPath)) {
4336
// Force copying if the destination doesn't exist.
4437
nodeModulesData.lastModifiedTime = null;
4538
}
4639

47-
if (!nodeModulesData.appFilesUpdaterOptions.bundle) {
48-
const tnsModulesCopy: TnsModulesCopy = this.$injector.resolve(TnsModulesCopy, {
49-
outputRoot: nodeModulesData.absoluteOutputPath
50-
});
51-
tnsModulesCopy.copyModules({ dependencies: productionDependencies, release });
52-
} else {
53-
this.cleanNodeModules(nodeModulesData.absoluteOutputPath);
54-
}
40+
const tnsModulesCopy: TnsModulesCopy = this.$injector.resolve(TnsModulesCopy, {
41+
outputRoot: nodeModulesData.absoluteOutputPath
42+
});
5543

56-
return productionDependencies;
44+
tnsModulesCopy.copyModules({ dependencies: productionDependencies, release });
5745
}
5846
}
5947

test/npm-support.ts

-22
Original file line numberDiff line numberDiff line change
@@ -294,28 +294,6 @@ describe("Npm support tests", () => {
294294

295295
assert.isTrue(filteredResults.length === 1);
296296
});
297-
298-
it("Ensures that tns_modules absent when bundling", async () => {
299-
const fs = testInjector.resolve("fs");
300-
const options = testInjector.resolve("options");
301-
const tnsModulesFolderPath = path.join(appDestinationFolderPath, "app", "tns_modules");
302-
303-
try {
304-
options.bundle = false;
305-
await preparePlatform(testInjector);
306-
assert.isTrue(fs.exists(tnsModulesFolderPath), "tns_modules created first");
307-
308-
options.bundle = true;
309-
await preparePlatform(testInjector);
310-
assert.isFalse(fs.exists(tnsModulesFolderPath), "tns_modules deleted when bundling");
311-
312-
options.bundle = false;
313-
await preparePlatform(testInjector);
314-
assert.isTrue(fs.exists(tnsModulesFolderPath), "tns_modules recreated");
315-
} finally {
316-
options.bundle = false;
317-
}
318-
});
319297
});
320298

321299
describe("Flatten npm modules tests", () => {

0 commit comments

Comments
 (0)