Я пытаюсь преобразовать приложение TypeScript Angular 1 для использования импорта модулей стиля ES6.Простой пример использования Angular 1 с TypeScript и SystemJS
капает использование имен и используя импорта ключевое слово, чтобы тянуть в модулях. например
import * as angular from "angular";
import * as angularroute from "angular-route";
Но я столкнулся с некоторыми проблемами. Я получаю сообщение об ошибке с углового:
Uncaught (обещанию) Ошибка: (SystemJS) [$ Инжектор: modulerr] Не удалось создать экземпляр модуля TestApp вследствие:
Ошибка: [$ инжектором: modulerr] Не удалось создать экземпляр модуль ngRoute из-за:
Ошибка: [$ injector: nomod] Модуль 'ngRoute' недоступен! Вы либо ошибочно написали имя модуля, либо забыли загрузить его. Если регистрации модуля убедитесь, что вы задаете зависимости в качестве второго аргумента
Чтобы проиллюстрировать эту проблему, я создал два приложение на GitHub:
1) Angular1WithNamespaces - Исходное приложение, которое я хочу, чтобы преобразовать.
2) Angular1WithSystemJS - Мое преобразование, которое имеет проблему.
Ниже приведены фрагменты из примера Angular1WithSystemJS, в котором есть проблема.
index.html
<!DOCTYPE html>
<html lang="en" ng-app="testApp">
<head><base href="/"></head>
<body >
<ng-view></ng-view>
<script src="node_modules/systemjs/dist/system.js"></script>
<script src="configs/systemjs.config.js"></script>
<script>
System.import('app/boot');
</script>
</body>
</html>
systemjs.config.js
System.config({
defaultJSExtensions: true,
paths: {
"npm:*": "../node_modules/*"
},
// map tells the System loader where to look for things
map: {
"angular": "npm:angular/angular.js",
"angular-route": "npm:angular-route/angular-route.js",
},
meta: {
'angular': {
format: 'global',
},
'angular-route': {
format: 'global',
},
}
});
boot.ts
/// <reference path="../typings/tsd.d.ts" />
import * as angular from "angular";
import * as angularroute from "angular-route";
let main = angular.module("testApp", ["ngRoute"]);
main.config(routeConfig)
routeConfig.$inject = ["$routeProvider"];
function routeConfig($routeProvider: angular.route.IRouteProvider): void {
$routeProvider
.when("/dashboard", {
templateUrl: "/app/dashboard.html",
})
.otherwise("/dashboard");
}
Любой помощь в получении этой работы был бы весьма признателен.