Merge pull request #286 from NativeScript/feature/device-specific-code-behind

Fix: Device-specific code behind JS files are not loaded
This commit is contained in:
Alexander Vakrilov
2015-04-17 10:36:31 +03:00

View File

@ -47,10 +47,13 @@ function resolvePageFromEntry(entry: definition.NavigationEntry): pages.Page {
var moduleNamePath = fs.path.join(currentAppPath, entry.moduleName); var moduleNamePath = fs.path.join(currentAppPath, entry.moduleName);
var moduleExports; var moduleExports;
var moduleExportsResolvedPath = resolveFilePath(moduleNamePath, "js");
if (moduleExportsResolvedPath) {
trace.write("Loading JS file: " + moduleExportsResolvedPath, trace.categories.Navigation);
if (fs.File.exists(moduleNamePath + ".js")) { // Exclude extension when doing require.
trace.write("Loading JS file: " + moduleNamePath + ".js", trace.categories.Navigation); moduleExportsResolvedPath = moduleExportsResolvedPath.substr(0, moduleExportsResolvedPath.length - 3)
moduleExports = require(moduleNamePath); moduleExports = require(moduleExportsResolvedPath);
} }
if (moduleExports && moduleExports.createPage) { if (moduleExports && moduleExports.createPage) {
@ -70,7 +73,7 @@ function resolvePageFromEntry(entry: definition.NavigationEntry): pages.Page {
} }
var fileNameResolver: fileResolverModule.FileNameResolver; var fileNameResolver: fileResolverModule.FileNameResolver;
function resolveFilePath(path, ext) { function resolveFilePath(path, ext) : string {
if (!fileNameResolver) { if (!fileNameResolver) {
fileNameResolver = new fileResolverModule.FileNameResolver({ fileNameResolver = new fileResolverModule.FileNameResolver({
width: platform.screen.mainScreen.widthDIPs, width: platform.screen.mainScreen.widthDIPs,