Work around a webpack bundling fail in transitions by using full imports.

It seems Webpack can't discover aliased modules that relative-import other
aliased modules e.g. "ui/transition", aliased to
"ui/transition/transition.android", not discovering "./slide-transition"
which is aliased to "ui/transition/slide-transition.android.js"
This commit is contained in:
Hristo Deshev
2016-03-29 14:04:27 +03:00
parent b3cde8cc81
commit 69f3dd101e
2 changed files with 12 additions and 7 deletions

View File

@ -156,16 +156,19 @@ export function _setAndroidFragmentTransitions(navigationTransition: frameModule
var transition: definition.Transition;
if (name) {
if (name.indexOf("slide") === 0) {
var slideTransitionModule = require("./slide-transition");
//HACK: Use an absolute import to work around a webpack issue that doesn't resolve relatively-imported "xxx.android/ios" modules
var slideTransitionModule = require("ui/transition/slide-transition");
var direction = name.substr("slide".length) || "left"; //Extract the direction from the string
transition = new slideTransitionModule.SlideTransition(direction, navigationTransition.duration, navigationTransition.curve);
}
else if (name === "fade") {
var fadeTransitionModule = require("./fade-transition");
//HACK: Use an absolute import to work around a webpack issue that doesn't resolve relatively-imported "xxx.android/ios" modules
var fadeTransitionModule = require("ui/transition/fade-transition");
transition = new fadeTransitionModule.FadeTransition(navigationTransition.duration, navigationTransition.curve);
}
else if (name.indexOf("flip") === 0) {
var flipTransitionModule = require("./flip-transition");
//HACK: Use an absolute import to work around a webpack issue that doesn't resolve relatively-imported "xxx.android/ios" modules
var flipTransitionModule = require("ui/transition/flip-transition");
var direction = name.substr("flip".length) || "right"; //Extract the direction from the string
transition = new flipTransitionModule.FlipTransition(direction, navigationTransition.duration, navigationTransition.curve);
}
@ -394,4 +397,4 @@ export class Transition implements definition.Transition {
public toString(): string {
return `${types.getClass(this)}@${this._id}`;
}
}
}

View File

@ -106,14 +106,16 @@ export function _createIOSAnimatedTransitioning(navigationTransition: frame.Navi
if (name.indexOf("slide") === 0) {
let direction = name.substr("slide".length) || "left"; //Extract the direction from the string
if (!slideTransitionModule) {
slideTransitionModule = require("./slide-transition");
//HACK: Use an absolute import to work around a webpack issue that doesn't resolve relatively-imported "xxx.android/ios" modules
slideTransitionModule = require("ui/transition/slide-transition");
}
transition = new slideTransitionModule.SlideTransition(direction, navigationTransition.duration, nativeCurve);
}
else if (name === "fade") {
if (!fadeTransitionModule) {
fadeTransitionModule = require("./fade-transition");
//HACK: Use an absolute import to work around a webpack issue that doesn't resolve relatively-imported "xxx.android/ios" modules
fadeTransitionModule = require("ui/transition/fade-transition");
}
transition = new fadeTransitionModule.FadeTransition(navigationTransition.duration, nativeCurve);
@ -128,4 +130,4 @@ export function _createIOSAnimatedTransitioning(navigationTransition: frame.Navi
}
return null;
}
}