TypeScript 和 SystemJS:angular ui 路由器模块未在转译后的 js 中注册
TypeScript & SystemJS: angular ui router module not registered in transpiled js
我正在编写一个 AngularJS
应用程序,其中 TypeScript
作为转译器,SystemJS
用于模块加载。我试图加载 angular-ui-router
模块来配置路由,但没有成功。我收到此错误:
angular.js:38 Uncaught Error: [$injector:modulerr]
这是脚本:
import * as angular from "angular";
import * as router from "angular-ui-router";
const app: angular.IModule = angular.module("my.website", ["ui.router"]);
app.config((stateProvider: router.IStateProvider) => {
...
});
这是脚本的转译方式:
System.register(["angular"], function(exports_1, context_1) {
...
如您所见,angular-ui-路由器未注册,因此未加载模块。为什么?我做错了什么?
为了完整性:
这是 SystemJS 配置:
System.config({
defaultJSExtensions: true,
map: {
"angular": "https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js",
"angular-ui-router": "https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.1/angular-ui-router.min.js"
}
});
这些是相关的 TypeScript 设置:
"target": "es5",
"module": "system"
我已经使用 typings
.
加载了 TypeScript 定义文件
转译由 gulp-typescript
完成。
有什么线索吗?
我设法通过导入文件和模块让它工作。尽管它可能很丑陋,但它有效:
import * as angular from "angular";
import "angular-ui-router";
import * as router from "angular-ui-router";
const app: angular.IModule = angular.module("my.website", ["ui.router"]);
app.config((stateProvider: router.IStateProvider) => {
...
});
我正在编写一个 AngularJS
应用程序,其中 TypeScript
作为转译器,SystemJS
用于模块加载。我试图加载 angular-ui-router
模块来配置路由,但没有成功。我收到此错误:
angular.js:38 Uncaught Error: [$injector:modulerr]
这是脚本:
import * as angular from "angular";
import * as router from "angular-ui-router";
const app: angular.IModule = angular.module("my.website", ["ui.router"]);
app.config((stateProvider: router.IStateProvider) => {
...
});
这是脚本的转译方式:
System.register(["angular"], function(exports_1, context_1) {
...
如您所见,angular-ui-路由器未注册,因此未加载模块。为什么?我做错了什么?
为了完整性: 这是 SystemJS 配置:
System.config({
defaultJSExtensions: true,
map: {
"angular": "https://ajax.googleapis.com/ajax/libs/angularjs/1.5.6/angular.min.js",
"angular-ui-router": "https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.1/angular-ui-router.min.js"
}
});
这些是相关的 TypeScript 设置:
"target": "es5",
"module": "system"
我已经使用 typings
.
转译由 gulp-typescript
完成。
有什么线索吗?
我设法通过导入文件和模块让它工作。尽管它可能很丑陋,但它有效:
import * as angular from "angular";
import "angular-ui-router";
import * as router from "angular-ui-router";
const app: angular.IModule = angular.module("my.website", ["ui.router"]);
app.config((stateProvider: router.IStateProvider) => {
...
});