Angular не начинает использовать пакет SystemJS

Я экспериментировал со странным существом две недели назад.

Я размышлял и решил сделать репо и сделать тесты, чтобы изолировать проблему.

Это простой репо, извлеченный из углового / быстрого старта. Я добавил файл gulp для сборки пакета, и когда я попытался загрузить его, у меня возникла та же проблема. Приложение не запускается.

Это конфигурационный файл systemjs: https://github.com/tolemac/systemjs-test/blob/master/systemjs.config.js

Это gulpfile для сборки пакета: https://github.com/tolemac/systemjs-test/blob/master/gulpfile.js

И это репо: https://github.com/tolemac/systemjs-test

Инструкция по воспроизведению:

mkdir systemjs-test
cd systemjs-test
git clone https://github.com/tolemac/systemjs-test.git .
npm install
gulp bundle
npm start

2 ответа

Решение

Ну, я провел все больше и больше времени с этим.

Я многому научился, читая исходный код systemjs, systemjs-builder и плагинов babel, используемых сборщиком для идентификации кода загрузчика модулей загруженных модулей. Все только для того, чтобы понять, что проблема в том, что SystemJS не идентифицирует формат модуля пакета... из-за этого, systemjs не выполняет загруженный код... тогда решение было установить формат пакета через конфигурация, таким образом:

packages: {
  ...
  ...
  ...
  'bundles/vendor.js': {
    format: "system"
  }
}

Решено!

Я опробовал ваш репозиторий, и, как подозревал, пакет, который он производит, выглядит неправильно:

(function (global, factory) {
    typeof exports === 'object' && typeof module !== 'undefined' ? 
      factory(exports, require('@angular/core')) : 
      'function' === 'function' && true ? System.registerDynamic('npm:@angular/compiler/bundles/compiler.umd.js', ['@angular/core'], false, function ($__require, $__exports, $__module) {
        if (typeof factory === 'function') {
            return factory.call($__exports, $__exports, $__require('@angular/core'));
        } else {
            return factory;
        }

Что-то здесь не так. Обратите внимание на 'function' === 'function' && true ? заявление...

Я предлагаю использовать Rollup для комплектации вашего приложения.

Демо-приложение для начинающих

Другие вопросы по тегам