Typescript AMD 模块错误(模块尚未加载上下文)

标签 typescript amd

我有以下 Typescript 文件

/// <reference path="../../_references.ts" />
var app = require("modules/app");
var spactrl = require("controllers/spactrl");

var main = function (app: ng.IModule) {
    app.config(function ($routeProvider: ng.route.IRouteProvider) {
        $routeProvider.when("/", { controller: "HomeCtrl", templateUrl:"/spa/template/greet" });
    });
}
export = main;

但是当我将其编译到 AMD 中时,我得到了这个输出

define(["require", "exports"], function(require, exports) {
    /// <reference path="../../_references.ts" />
    var app = require("modules/app");
    var spactrl = require("controllers/spactrl");

    var main = function (app) {
        app.config(function ($routeProvider) {
            $routeProvider.when("/", { controller: "HomeCtrl", templateUrl: "/spa/template/greet" });
        });
    };

    return main;
});
//# sourceMappingURL=main.js.map

这会导致错误'尚未为上下文加载模块名称“modules/app”:_'

浏览 requirejs 的文档 http://requirejs.org/docs/errors.html#notloaded

看起来生成的文件应该具有我所需的“模块/应用程序”,或者一起删除依赖项数组。

有解决办法吗?还是我做错了什么?

最佳答案

我查看了你的代码,你正在尝试通过 require 调用加载 js 模块。例如。 :

https://github.com/odytrice/RequireAngular/blob/dev/RequireAngular/Scripts/app/modules/app.ts

require("angular-route");
require("angular-resource");
require("angular-animate");

这将不起作用,因为 TypeScript 不知道这些 require 调用,并且无法将其添加到 define部分。要告诉 typescript 这一点,您需要使用 /// <amd-dependency

PS:我有一个关于这个主题的视频:http://www.youtube.com/watch?v=4AGQpv0MKsA&hd=1

关于Typescript AMD 模块错误(模块尚未加载上下文),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21727368/

相关文章:

Typescript -> Babel sourcemaps 使用 webpack

typescript - 具有属性的类,其中属性本身包含 <T extends Class> 类型的属性

javascript - 使用 AMD 和 Moodle

javascript - 在自定义 dojo amd 模块中的 xhr 请求后调用同级方法

javascript - 当 require.js 存在时,如何成功加载 dimple.js?

javascript - 如何在 Ionic 4 中向选项卡添加模式?

node.js - 将 ENUM 与 Sequelize 和 Typescript 结合使用

javascript - typescript 标记联合未在 switch 语句中进行类型检查

WebStorm 中的 TypeScript AMD。烦人的 "Assigned Expression type"错误

javascript - RequireJS 优化器和 VS 2010 集成