Имя модуля "NAMEOFMODULE" еще не загружено для контекста: _. Используйте требуют ([]) - PullRequest
0 голосов
/ 28 октября 2019

Я пишу небольшую машинописную программу, которая требует загрузки модуля для работы в браузере, а не на сервере узлов. Я довольно новичок в TS и в результате прошу прощения за любые ошибки или отсутствие понимания.

У меня есть 4 модуля, которые необходимо загрузить во время выполнения, чтобы программа работала правильно, в моем файле Main.JS в папке моего сборщика, и они объявляются следующим образом:

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'
    };
});

Я также пробовал это делать, пытаясь определить модули и передавая требуемую библиотеку.

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", и я предположил, что это было частью поведения компиляции.

Любая обратная связь очень ценится, поскольку я также передал ее старшим лекторам, которые сказали мне, чтобы они копировали их рабочее решение, которое я считаю бессмысленным.

...