Как получить доступ к переменным / функциям в bundle.js - PullRequest
1 голос
/ 17 октября 2019

привет, как вы получаете доступ к переменным в bundle.js?

Я пытаюсь создать клиентский javascript и поэкспериментировать с переменными и функциями, но у меня возникают проблемы с вызовом их в index.html, chrome-console.

Я использую browserify для комплектации своего скрипта.js в bundle.js (который помогает мне с 'require', который браузер не распознает), однако, когда я пытаюсь получить доступ к переменным или функциям, определенным в script.js, теперь bundle.js я получаю, например, Uncaught ReferenceError: xx isне определено

Любая помощь? Или мне не разрешено использовать пакеты узлов в клиентских html / scripts?

edit: немного погуглил и натолкнулся на этого парня, который сказал, что я должен использовать XHR / AJAX require "is not notопределенная ошибка - javascript

edit2: window.xx = xx представляется временным решением

1 Ответ

0 голосов
/ 17 октября 2019

Исправьте меня, если я ошибаюсь, потому что я не использовал Browserify (я использовал другие инструменты пакетирования / обработки), но, насколько я понимаю, Browserify объединяет весь код из исходного исходного файла в bundle.jsфайл. Внутри этого bundle.js находится область, которая недоступна извне (если, конечно, специально не экспортирована, но это другая история).

Так, например:

// source.js
var test = require('./some-file-with-an-empty-object.js');
// Pseudo code example of bundle.js
;(function(){
   var test = {};
})();

Потому чтоиз этого IIFE область действия var test ограничена и недоступна для внешних сценариев или window.

Короче говоря, делайте то, что вам нужно делать в исходном файле, а невне этого.

...