2017-09-25 2 views
1

Je suis diffrent bibliothèques JS regrouper à l'aide de grunt-contrib-concat comme suit:Bibliothèques JS fournies par ex. angulaire, jQuery, lodash après eval lance "require est pas défini"

dist7: { 
    src: [ 
     'lib/jquery/dist/jquery.js', 
     'lib/ng1.6/angular-animate/angular-animate.js', 
     'lib/ng1.6/angular-aria/angular-aria.js', 
     'lib/ng1.6/angular-messages/angular-messages.js', 
     'lib/api-check/dist/api-check.js', 
     'lib/angular-formly/dist/formly.js', 
     'lib/ng1.6/angular-sanitize/angular-sanitize.js', 
     'lib/angular-ui-router/release/angular-ui-router.js', 
     'lib/lodash/lodash.js', 
     'lib/angularjs-toaster/toaster.js', 
     'lib/moment/min/moment-with-locales.js', 
     'lib/eventie/eventie.js', 
     'lib/wolfy87-eventemitter/EventEmitter.js', 
     'lib/imagesloaded/imagesloaded.js', 
     'lib/desandro-matches-selector/matches-selector.js', 
     'lib/doc-ready/doc-ready.js', 
     'lib/fizzy-ui-utils/utils.js', 
     'lib/desandro-get-style-property/get-style-property.js', 
     'lib/get-size/get-size.js', 
     'lib/outlayer/item.js', 
     'lib/outlayer/outlayer.js', 
     'lib/masonry-layout/masonry.js'], 
    dest: 'dist/js/my-dependencies.js' 
} 

Quand j'ajouter dist/js/my-dependencies.js dans la balise de script il fonctionne .

Mais quand je fais une demande chercher alors je fais comme eval suivant:

fetch('dist/js/my-dependencies.js', {method: 'GET'}) 
    .then(response => response.text()))).then(scr => { 
     eval(scr) 
    }); 

Il thoows folowing erreur:

Err in evaling: /cuicui/scripts/js/my-dependencies.js With err: 
ReferenceError: require is not defined 
    at installedModules (eval at <anonymous> (cd.component.js:12), <anonymous>:1:93) 
    at eval (eval at <anonymous> (cd.component.js:12), <anonymous>:1:554) 
    at cd.component.js:12 
    at Array.forEach (<anonymous>) 
    at cd.component.js:12 
    at <anonymous> 

Répondre

1

Le problème: L'un de vos dépendances a un require('someLib') en haut (prob) du fichier.

Comment trouver: passer par chaque libary et faire une recherche pour le mot-clé require

Pourquoi eval ne manque? eval() est sur la fenêtre pas dans le nœud. Et par conséquent, il ne sait pas comment gérer ce mot-clé. Je suggère de trouver des versions pré-minfied de toutes vos bibliothèques et ne pas utiliser la source de la bibliothèque.

+0

besoin est utilisé par certaines bibliothèques comme angulaire interne mais je ne suis pas sûr d'où ils r résoudre à partir de? –