2014-12-30 3 views
2

Я получил следующий набор в моем index.html:Глобальные библиотеки с system.js

... 
<script src="components/angular/angular.js"></script> 

<script src="components/traceur/traceur.js"></script> 
<script src="components/es6-module-loader/dist/es6-module-loader.src.js"></script> 
<script src="components/system.js/dist/system.src.js"></script> 

<script> 
    System.baseURL = '/'; 
</script> 

<script type="module"> 
    // Example 
    import angular from 'angular'; 

    angular.module('myApp', [...]); 
</script> 

Я хотел бы загрузить angular.js (и некоторые другие общие LIBS) глобально через тег сценария. Но когда я пытаюсь использовать его в модулях (в моем случае, es6-modules), system.js пытается загрузить его через URL-адрес http://mysite/angular.js. Он просто не видит, что я уже включил его в качестве глобальной библиотеки. Я потратил несколько часов на выяснение, как я могу справиться с этим, прочитайте wiki system.js в Github, но я все еще придерживаюсь этого.

Может ли кто-нибудь показать, как настроить system.js для работы с глобальными библиотеками?

+0

, который идет против всей точки зрения использования модуля загрузчика как система. Если вы действительно хотите это сделать, см. Https://groups.google.com/forum/#!topic/systemjs/0_tuZW5s-JY – user2943490

+0

Как насчет больших, где вы хотите включить их вне сборки SystemJS: a) по соображениям производительности сборки, б) потому что другие вещи полагаются на них глобальными. Например, я хочу использовать Three.js, а также дополнительный «ColladaLoader» Three.js, который присоединяется к глобальному объекту THREE ... Browserify-shim, например, рекомендует делать это, вставляя их с отдельными тегами сценария. – poshaughnessy

+0

В документах SystemJS рекомендуются адаптивные модули для глобалов с помощью отдельного сценария (https://github.com/systemjs/builder#adapter-modules). Однако это не поможет, если вы используете библиотеку, которая требует() через ее имя npm ... :( – poshaughnessy

ответ

4
System.registerDynamic('angular', [], false, function(require, exports, module) { 
    module.exports = window.angular; 
}); 

или

System.set('angular', System.newModule({ 
    "default": window.angular 
})); 
Смежные вопросы