J'ai eu le même problème décrit ci-dessus.
import * as moment from 'moment';
- travaillé lors de l'élaboration et de chargement à l'aide d'systemjs, mais pas pendant cumulatif.
import moment from 'moment';
- a travaillé dans un cumulatif de construire, mais pas au cours du développement.
Pour éviter d'avoir à changer le code selon le type de build, j'ai juste ajouté moment comme un système global et créé une fonction d'aide qui je l'importation partout, j'ai besoin de l'utiliser au lieu de l'importation moment.
Cela signifie que le même code fonctionne pour les deux types de scénarios. Il n'est pas particulièrement jolie, si il y a une meilleure manière s'il vous plaît laissez-moi/nous le faire savoir!
Voici la fonction d'assistance, a ajouté de son propre fichier momentLoader.ts
import { default as mom } from 'moment';
export default function moment(args?: any): mom.Moment {
let m = window["moment"];
if (!m) {
console.error("moment does not exist globally.");
return undefined;
}
return m(args);
}
Pour utiliser moment dans d'autres classes, je viens d'importer la fonction et l'appeler comme si j'avais importé moment directement:
import moment from '../../momentLoader';
let d = moment().utc("1995-12-25");
let m = moment("1995-12-25");
Pour obtenir systemjs pour charger un mondial, j'ai simplement suivi ces étapes.
http://momentjs.com/docs/#/use-it/system-js/
Dans mon cas, le moment de config pour systemjs ressemble à ceci:
let meta = {
'lib:moment/moment.js': { format: 'global' }
};
System.config({
paths: paths,
map: map,
packages: packages,
meta: meta
});
System.import('lib:moment/moment.js');
Pour le cumulatif de construction, vous devrez vous assurez moment.js est ajouté à la page quelque part via une balise script, comme il ne sera pas inclus dans le correctif cumulatif fichier build malheureusement.