Quelle est la bonne façon d'exécuter du code sur Souligné quand il est chargé? Je suis en train d'exécuter le dessous de code pour étendre le _ namespace exporté automatiquement lorsque les modules exigent:
require.config({ paths: { jquery: 'libs/jquery/jquery.min', underscore: 'libs/underscore/lodash.min', underscorestring: 'libs/underscore/underscore.string.min' }, shim: { underscore: { exports: '_' } underscorestring: { deps: ['underscore'], init: function (_) { //Mixin plugin to namespace _.mixin(_.str.exports()); return _; } } } });
3 Réponses :
Est-ce que vous exigez em> sous-traitant quelque part? Parce que si ce n'est pas nécessaire, cela ne sera pas chargé.
J'ai réussi à le faire fonctionner avec presque exactement le même code que vous avez posté: require.config({
paths: {
underscore: [
'//raw.github.com/documentcloud/underscore/master/underscore-min'
, 'lib/underscore'
]
, underscorestring: 'https://raw.github.com/epeli/underscore.string/master/dist/underscore.string.min'
}
, shim: {
underscore: { exports: '_' },
underscorestring: {
deps: ['underscore'],
init: function(_) {
_.mixin(_.str.exports());
return _; // guess, this is not needed.
}
}
}
, exclude: ['underscore']
});
require(['underscore', 'underscorestring'], function(_) {
console.log( _.chars("i'm a happy string.") );
});
Je ne sais pas si c'est la bonne façon, mais je l'ai eu de travail en inversant les choses afin que underscore dépend underscore.string. De plus, cette façon vous n'avez pas besoin underscore.string
define([ 'underscore', 'underscore.string' ], function(_, _s) { _.mixin(_s.exports()); return _; });
Il ne semble pas que "init" fonctionne dans la cale avec les dernières exigences. Consultez cette technique à la place: blog.falafel.com/blogs/basem-emara/2014/02/17/...
Vous pouvez utiliser la propriété Carte CODE> pour alias efficacement 'Undercore' sur votre "Underscore.Mixed". Voir Exigerjs.org/docs/jquery.html#noconflictMap
Combattre avec cela pendant des heures avant de comprendre ce que je faisais mal
C'est ce que j'ai fait de mal p>
Vous ne devez pas renommer le fichier sous-traitant.string dans Main.js P> Même si dans ma bibliothèque, j'ai renommé le fichier dans les chemins que je le nomme Retour à "Unserscore.string" p>
Voici comment votre Main.js Strong> devrait ressembler à p> Vous pouvez alors l'ajouter comme dépendance forte> avec votre shim comme je l'ai fait pour mon fichier de mixin p> ou juste définir strong> dans vos différentes pages telles que P> /*global define */
define([
'underscore',
'underscore.string'
], function ( ) {
_.mixin(_.str.exports());