Я использовал этот es6-module-loader
в проекте Angular 2
, и он отлично работал для загрузки TypeScript
модулей в режиме реального времени в веб-браузере. Сейчас я обновляю этот проект до Angular 6
, но здесь зависимости не встречаются для imports
загрузочного модуля. Например:
declare var SystemLoader:any;
export class DemoClass {
constructor() {
var source = "export class Foo { " +
"constructor() { console.log('Created the ES6 class foo!'); } " +
"execMethod() { console.log('Executed method!') }" +
"}";
SystemLoader.module(source, {name: _name}).then(function (module: any) {
module.Foo.prototype.execMethod();
}
}
}
Этот предыдущий код работает в Angular 6
. Он загрузит модуль Foo
и напечатает эти строки в Console
. Но если я получу модуль немного сложнее и добавлю import
, например:
declare var SystemLoader:any;
export class DemoClass {
constructor() {
var source = "import {Component} from \"@angular/core\"; " +
"export class Foo { " +
"constructor() { console.log('Created the ES6 class foo!'); } " +
"execMethod() { console.log('Executed method!') }" +
"}";
SystemLoader.module(source, {name: _name}).then(function (module: any) {
module.Foo.prototype.execMethod();
}
}
}
Тогда он не будет работать и жалуется на error 404 loading @angular/core
. Итак, в Angular 2
это не было проблемой, потому что все node_modules
, необходимые для проекта, который загружен Angular
как есть, но в Angular 6
кажется, что все эти зависимости показаны Webpack
и разбиты все в одном большом толстом JavaScript
файле. Итак, как мне обойти это Webpack
упрощение, чтобы динамический модуль мог загружаться?
Edit:
Или, по крайней мере, образец для перехода с es6-module-loader
(устарело) на es-module-loader
с использованием того же процесса, который описан выше (загрузка исходного кода, компиляция [транспортация] и рендеринг на компьютере клиента).