Как использовать функцию require и модули TypeScript с tsify и watchify? - PullRequest
2 голосов
/ 07 апреля 2020

Я использую tsify с watchify и VS Code. Компиляция прошла успешно без каких-либо предупреждений или ошибок.

Я использую эту команду:

cd html/wp-content/themes; watchify custom-theme/assets/ts/main.ts -p [ tsify ] -o custom-theme/assets/js/bundle.js -v

Содержимое utils.ts:

export module Utils {
    function getBrowserLanguage() : string {
        ...
    }

    function formatTime(secs: number): string {
        ...
    }
}

В каждом файле, где я использую Utils, я помещаю это:

const Utils = require("./utils");

вверху файла.

Проблема заключается в том, что в браузере появляется сообщение об ошибке консоли:

ReferenceError: Utils is not defined (bundle.js)

Все файлы TypeScript находятся в одной папке .

Это мой tsconfig.json файл:

{
    "compilerOptions": {
        "removeComments": true,
        "preserveConstEnums": true,
        "sourceMap": true,
        "outDir": "wp-content/themes/custom-theme/assets/js",
        "watch": true,
        "allowJs": true,
        "lib": ["ES2020", "DOM"]
    },
    "include": [
        "wp-content/themes/custom-theme/assets/ts"
    ],
    "exclude": [
        "node_modules",
        "**/*.spec.ts"
    ]
}

Что я могу сделать, чтобы код работал в браузере без этой ошибки?

Спасибо.

Обновление 1

Это репо с упрощенным примером.

...