Я передаю свой TypeScript с помощью «-m umd», потому что мой проект включает в себя сервер, клиент и общий код. Однако клиентский код не работает в браузере. В браузере даже не отображается какая-либо ошибка, и точка останова, на которую я не попал, не удалась, поэтому мне пришлось удалить js-ts mapping. Затем я смог отладить его, и я нашел проблему.TypeScript UMD как «module», так и «define» не определены
Ниже приведен код, который генерирует UMD:
(function (factory) {
if (typeof module === 'object' && typeof module.exports === 'object') {
var v = factory(require, exports); if (v !== undefined) module.exports = v;
}
else if (typeof define === 'function' && define.amd) {
define(["require", "exports", "./model"], factory);
}
})(function (require, exports) {
//my code
});
Это не работает, потому как «модуль» и «определение» не определены. Поэтому мой код не выполняется и исключений не существует.
Что случилось? Как я могу заставить его работать?
Вы должны использовать загрузчик модуля. –
@Tamas Hegedus как SystemJS? Поэтому мне не нужно использовать UMD в этом случае. Я думал, что UMD должен решить мне эту проблему. – Alon
UMD объединяет модули AMD и CommonJS, поэтому вы также можете использовать эти модули. SystemJS также объединяет AMD и CommonJS, поэтому он может загружаться. Единственный ясный способ решить проблему - использовать чистые модули es6 и пакет с rollupjs. Я не знаю, имеет ли набор машинописных описаний встроенный набор, построенный в –