2017-08-08 3 views
0

J'ai une application angulaire intégrée dans Visual Studio 2017. J'utilise npm, gulp, et browserify pour m'aider à gérer les dépendances, le regroupement et la minimisation. Tout s'était bien passé jusqu'à ce que j'essaie de saisir le moment, le moment, le fuseau horaire et le moment angulaire, quand j'ai commencé à avoir du mal à faire fonctionner ces bibliothèques. Je suppose que le problème est lié à la façon dont ces bibliothèques sont incluses dans mon application en raison d'une erreur ou d'un bug dans la façon dont j'utilise npm, gulp, browserify, ou require ('.. . ') déclarations. Donc, il me semble qu'il serait utile pour moi d'expliquer comment je le fais. Tout d'abord, dans VS, j'ai ajouté un fichier de configuration de noeud au projet (package.json) et il contient une liste de toutes mes dépendances qui seront installées via npm. Ainsi, par exemple, mon package.json ressemble à ceci:Comment charger des locales spécifiques avec browserify

{ 
"property": value, 
"otherProperty": otherValue, 
"dependencies": { 
    "angular": "1.5.8", 
    "angular-ui-router": "1.0.3", 
    "jquery": "3.1.0", 
    "moment": "2.18.1",  
    "moment-timezone": "0.5.13", 
    "angular-moment": "1.0.1" 
    } 
} 

Maintenant, qui fait aller de l'avant et NPM télécharger tout et le coller dans mon dossier node_modules, mais il ne comprend pas vraiment quoi que ce soit dans ma demande . Donc, il y a une tâche engouffreur semblable au suivant:

var dependencies = Object.keys(packageJson && packageJson.dependencies || {}); 
browserify({cache: {}, packageCache: {} }}) 
    .require(dependencies) 
    .bundle() 
    .pipe(source(js/siteLibs.js)) 
    .pipe(buffer()) 
    .pipe(gulp.dest(".")); 

Ok, donc si cette tâche engouffreur fonctionne correctement, je vais avoir un fichier appelé siteLibs.js qui contient tous les js de mes dépendances de MNP, puis Je peux juste créer une seule balise de script pour référencer siteLibs.js.

La partie suivante, je suis un peu flou, mais dois-je quand même avoir une instruction require ('...') dans mon application pour le moment, le moment angulaire et le moment-fuseau horaire? Si c'est nécessaire, pourquoi? Qu'est-ce que ça fait?

Maintenant, une fois à ce stade, je devrais pouvoir aller de l'avant et laisser mon application angulaire prendre une dépendance sur le moment, le moment, le fuseau horaire ou le moment angulaire, et, en effet, je peux. Le problème est que lorsque j'appelle moment.locales(), qui est censé renvoyer une liste de tous les paramètres régionaux chargés, il n'a rien d'autre que 'en-US'. Ok, c'est normal car je n'ai jamais chargé de locales. Donc, si je vais dans mon application et dire:

require('moment/locales/en-gb'); 
require('moment/locales/en-au'); 
require('moment/locales/fr-ca'); 

Cela ne fait aucune différence. Le seul paramètre régional chargé est en-US. Quelle est la bonne façon d'obtenir ces locales supplémentaires étant donné que j'utilise npm, gulp, et browserify?

Répondre

0

référer dans la documentation

https://momentjs.com/docs/#/use-it/browserify/

+0

Ouais de moment, soit je ne comprends pas exactement la solution de contournement, ou je ne le fais pas droit. J'ai ajouté les instructions require (dans l'app.js), mais cela ne les a pas réellement chargées. moment.locales() retourne toujours 'en-US'. Il obtient les fichiers javascript spécifiques aux paramètres régionaux inclus dans js de mon site, mais apparemment, ils ne sont pas réellement chargés autant que le moment le sait. Je me demande si c'est un conflit avec le moment objet de moment-timezonne ou angulaire-moment ou quelque chose? – ctb

+0

Apparemment, cela ressemble à une chose moment angulaire, je ne suis pas familier avec la bibliothèque. Juste en passant leur docs ici: https://github.com/urish/angular-moment - Je pense que c'est où vos problèmes arrivent. Vérifiez votre fichier angular.module.config, je pense que vous pourriez vouloir faire Assurez-vous que cela correspond à ce que vous recherchez (problème lié aux paramètres régionaux publié ici: https://github.com/urish/angular-moment/issues/259). –