Как получить доступ к окну в пакете узла - PullRequest
1 голос
/ 09 февраля 2020

В наши дни многие пакеты npm / node используются не только в node.js, но и в Интернете с использованием таких инструментов, как webpack или rollup.

Я создаю пакет, который Я хотел бы, чтобы меня использовали в Интернете. Как мне получить доступ к глобальному window объекту, который делает браузер доступным?

Есть ли какой-нибудь пакет, который предоставит мне этот объект?

1 Ответ

2 голосов
/ 09 февраля 2020

При работе в браузере присутствует глобальная переменная window, и вы просто используете ее. Вам не нужно ничего делать, чтобы сделать это подарком или пригодным для использования, если вы запускаете код в соответствующей среде. Если код выполняется в node.js, переменная window не будет присутствовать.

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

Если вы хотите сообщить разработчику, что он использует его неправильно, вы можете сделать что-то подобное в коде верхнего уровня:

if (typeof window !== "object" && typeof window.document !== "object") {
    // does not appear to be a browser environment
    throw new Error("This code is only meant to run in a browser environment");
}

Разработчик может обойти эти проверки либо путем определения window и window.document в глобальной среде перед загрузкой вашего кода, либо путем редактирования этой проверки из вашего кода, но в этот момент они сами по себе в любом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...