Skip to content

Commit e2b21ff

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.
1 parent dd01bae commit e2b21ff

File tree

2 files changed

+6
-19
lines changed

2 files changed

+6
-19
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

0 commit comments

Comments
 (0)