Смирись со мной, вроде двухчастного здесь. Во-первых, я прав, думая, что если у меня настроен основной JS, как это ..
const myModule = require('./myModule');
let parentVar = 'foo';
myModule.test();
.. и я настроил требуемый модуль следующим образом ..
module.exports = {
test: ()=>{
console.log(parentVar);
}
}
.. что когда основной скрипт вызывает myModule.test()
, он должен выдать ошибку, так как не может получить доступ к parentVar
? Это мой опыт и понимание работы с модулями в традиционных веб-сборках.
Теперь я создаю приложение Electron (используя Electron Forge ) и здесь Я могу позвонить myModule.test()
, и это успешно, кажется, что у меня есть доступ к переменной, объявленной в основном скрипте.
Я пытаюсь понять, почему это так, и я вижу две разницы, которые могут или не могут быть актуальным.
- Я не использую webpack / babel, поэтому JS находится в необработанном виде, с которым я обычно не работаю.
- Мои
require()
утверждения работать, только если я дам полный путь относительно приложения root, а не файла, выполняющего запрос.
Может кто-нибудь объяснить, почему требуемый модуль может получить доступ к свойствам запрашивающего в Electron?
Может кто-нибудь объяснить, почему мои операторы require работают только с root относительными путями в Electron?
Спасибо всем:)
РЕДАКТИРОВАТЬ Это все происходит в рендере. Основная JS загружается в мой индекс. html с использованием стандартного тега <script>
. Затем требуется модуль оттуда.