2017-02-19 26 views
0

Я пытаюсь создать мобильную версию своего приложения Electron, показывая файлы JavaScript и рендеринга javascript через HTTP-сервер, запущенный из основного процесса.Обслуживающий процесс рендеринга электронов по HTTP и с использованием require

Мой процесс обработки изображений javascript сильно использует требования. Они отлично работают внутри Electron. Вне электрона они не потому, что window.require не определен.

Итак, я попытался переписать немного кода, чтобы он работал с модулями, которые были либо required, либо ранее загружены в тег <script>.

Вот что я пытался до сих пор:

// Initial situation: 
const $ = require('jQuery'); 
// on mobile : require is not defined 

// Try 1 
if (window.require) { 
    const $ = require('jQuery'); 
} 
// doesn't work: $ is only defined in the scope of the if 

// Try 2 
let $; 
if (window.require) { 
    $ = require('jQuery'); 
} 
// on mobile : $ was defined from jQuery being loaded from a script tag, 
// but I just overwrote it with undefined 

// Try 3 
let $; 
if (window.require) { 
    $ = require('jQuery'); 
} 
else { 
    $ = window.$; 
} 
// on mobile : window.$ is undefined 

Может кто-нибудь увидеть, что я не хватает? Или, может быть, просто скажите, как настроить require на неэлектронной странице?

ответ

0

я в конечном итоге делает следующее:

if (window.require) { 
    window.$ = require('jQuery'); 
} 

, а затем с помощью window.$ вместо $ на протяжении всего процесса рендеринга.

+0

'window. $' И '$' считаются одинаковыми в среде браузера. – KeitIG

+0

, если вы открываете devtools на этой странице, 'windows. $$$' не определено, а '$$$' - это ReferenceError. Таким образом, они не совсем эквивалентны. В моем случае окно. $ Не существует заранее, поэтому я должен явно установить в окне (или объявить локальную переменную). – foucdeg

+0

О, верно, расслоение не будет считать их одинаковыми – KeitIG