Уважаемые пользователи StackOverflow,
Я сделал модуль как для браузера, так и для мини-программы WeChat. Этот модуль написан на нескольких TypeScript и скомпилирован в один мини-файл. В этом модуле мне нужно использовать API-интерфейсы DOM/BOM, такие как document
, 'window, 'navigator
. В браузере загрузка и использование скомпилированного одиночного файла не вызывает проблем.
Но в мини-программе WeChat нет объекта global
, как в Node. Также нет глобальных объектов document
и window
, как в браузере. Чтобы исправить это, я сделал две команды сборки для каждой среды.
grunt build
, стандартная компиляция TS для браузераgrunt wx_build
, стандартная компиляция TS и добавление кода патча для мини-программы WeChat
Пропатченный файл js выглядит так:
// mymodule-bundle.min.js
// patch
window=require("./miniapp-adapter/src/index.js");
document=require("./miniapp-adapter/src/document.js").default;
// original compiled/minified code
(function(f){if(typeof exports==="object"&&typeof module!=="undefined")...
В проекте мини-программы WeChat я поместил mymodule-bundle.min.js
и miniapp-adapter
в одну папку. В результате я смог перенести свое приложение HTML5 в мини-программу WeChat.
Но я хочу более умный способ сделать это.
Как я могу объявить глобальную переменную
window
илиdocument
вmymodule.ts
для выполнения мини-программы WeChat?
Спасибо.