尚未为上下文_加载模块名称“ NAMEOFMODULE”。使用require([])

时间:2019-10-28 15:59:19

标签: typescript requirejs node-modules

我正在编写一个小型的打字稿程序,该程序需要加载模块才能在浏览器中工作,而不是在节点服务器上工作。我是TS新手,因此请原谅任何错误或缺乏理解。

在我的builder文件夹中的Main.JS文件中,我有4个模块需要在运行时加载才能正确执行程序,它们声明如下:

Object.defineProperty(exports, "__esModule", { value: true });

var context_1 = require("./context");
var stratCommunity_1 = require("./stratCommunity");
var stratAggressive_1 = require("./stratAggressive");
var stratSemi_1 = require("./stratSemi");

但是,我收到上述错误。

我试图按照以下方式声明模块,我认为这正是文档说明的方式。

define(function () {
    return {
        'context_1':   './context',
        'stratCommunity_1':  './stratCommunity',
        'stratAggressive_1': './stratAggressive',
        'stratSemi_1':       './stratSemi'
    };
});

我也尝试过,尝试定义模块并传入require库。

define(function (require) {
    return {
        'context_1': require('./context'),
        'stratCommunity_1': require('./stratCommunity'),
        'stratAggressive_1': require('./stratAggressive'),
        'stratSemi_1': require('./stratSemi')
    };
});

当我尝试使用任何一种解决方案时,都会收到以下错误消息。

“未定义context_1”

我已将示例最小化,请注意,这是已编译的JS文件。

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });

define(function (require) {
    return {
        'context_1': require('./context'),
        'stratAggressive_1': require('./stratAggressive')
    };
});

var App = /** @class */ (function () {
    function App() {
    }
    App.main = function () {

        var context = new context_1.Context(new stratAggressive_1);
        context.executeStrat('Clown', 'mad');

        context.display();
    };
    return App;
}());
App.main();

在这个简单的示例中,我仍然收到未定义context_1的信息。

我注意到,当我编译TSC时,我所有的变量名都被附加到它们的“ _1”上,并且我认为这是编译行为的一部分。

任何反馈都将不胜感激,因为我也将其带给高级讲师,他们告诉我复制过去的工作解决方案,我认为这毫无意义。

0 个答案:

没有答案