Skip to content

Commit 0b07777

Browse files
Merge pull request #4363 from NativeScript/vladimirov/do-not-clean-tns_modules
chore: skip tns_modules cleanup from CLI
2 parents dd01bae + 20874b4 commit 0b07777

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)