Skip to content

Commit 7576191

Browse files
committed
cli will generate a productionDependencies.json that will be respected by gradle, so only the production dependencies are traversed, platform package is left installed as a dev dependency
1 parent 486651e commit 7576191

File tree

4 files changed

+16
-6
lines changed

4 files changed

+16
-6
lines changed

lib/constants.ts

+4
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ export const TEST_RUNNER_NAME = "nativescript-unit-test-runner";
1616
export const LIVESYNC_EXCLUDED_FILE_PATTERNS = ["**/*.js.map", "**/*.ts"];
1717
export const XML_FILE_EXTENSION = ".xml";
1818
export const DEV_DEPENDENCIES = "devDependencies";
19+
export const FRAMEWORK_TO_PACKAGE:IStringDictionary = {
20+
"android": TNS_ANDROID_RUNTIME_NAME,
21+
"ios": TNS_IOS_RUNTIME_NAME
22+
}
1923

2024
export class PackageVersion {
2125
static NEXT = "next";

lib/services/platform-service.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,7 @@ export class PlatformService implements IPlatformService {
9797
let frameworkDir = path.join(downloadedPackagePath, constants.PROJECT_FRAMEWORK_FOLDER_NAME);
9898
frameworkDir = path.resolve(frameworkDir);
9999

100-
let coreModuleName = await this.addPlatformCore(platformData, frameworkDir);
101-
await this.$npm.uninstall(coreModuleName, {}, this.$projectData.projectDir);
100+
await this.addPlatformCore(platformData, frameworkDir);
102101
} catch (err) {
103102
this.$fs.deleteDirectory(platformPath);
104103
throw err;

lib/services/plugins-service.ts

+3-4
Original file line numberDiff line numberDiff line change
@@ -274,10 +274,9 @@ export class PluginsService implements IPluginsService {
274274
}
275275

276276
private getInstalledFrameworkVersion(platform: string): string {
277-
let platformData = this.$platformsData.getPlatformData(platform);
278-
this.$projectDataService.initialize(this.$projectData.projectDir);
279-
let version = this.$projectDataService.getValue(platformData.frameworkPackageName, constants.DEV_DEPENDENCIES);
280-
return version;
277+
let pathToInstalledFrameworkPackageJson = path.join(this.$projectData.projectDir, constants.NODE_MODULES_FOLDER_NAME, constants.FRAMEWORK_TO_PACKAGE[platform.toLowerCase()], constants.PACKAGE_JSON_FILE_NAME);
278+
let jsonContent = this.$fs.readJson(pathToInstalledFrameworkPackageJson);
279+
return jsonContent.version;
281280
}
282281

283282
private isPluginDataValidForPlatform(pluginData: IPluginData, platform: string): boolean {

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

+8
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,11 @@ export class NodeModulesBuilder implements INodeModulesBuilder {
126126
let dependenciesBuilder = this.$injector.resolve(NodeModulesDependenciesBuilder, {});
127127
let productionDependencies = dependenciesBuilder.getProductionDependencies(this.$projectData.projectDir);
128128

129+
let prodDependenciesArr = [];
130+
for(let i in productionDependencies) {
131+
prodDependenciesArr.push(productionDependencies[i].name);
132+
}
133+
129134
if (!this.$options.bundle) {
130135
const tnsModulesCopy = this.$injector.resolve(TnsModulesCopy, {
131136
outputRoot: absoluteOutputPath
@@ -137,6 +142,9 @@ export class NodeModulesBuilder implements INodeModulesBuilder {
137142

138143
const npmPluginPrepare: NpmPluginPrepare = this.$injector.resolve(NpmPluginPrepare);
139144
await npmPluginPrepare.preparePlugins(productionDependencies, platform);
145+
146+
let prodDependenciesFilePath = path.join(this.$projectData.projectDir, "platforms", "android", "build", "productionDependencies.json")
147+
this.$fs.writeJson(prodDependenciesFilePath, prodDependenciesArr);
140148
}
141149

142150
public cleanNodeModules(absoluteOutputPath: string, platform: string): void {

0 commit comments

Comments
 (0)