Electron: проблемы с загрузкой файлов javascripts с помощью requireJS

Созданный на 26 мая 2014  ·  3Комментарии  ·  Источник: electron/electron

Я работаю над проектом уже несколько месяцев и хотел бы использовать Atom для встраивания приложения. В проекте используется requireJS, и я никогда не сталкивался с проблемой загрузки скриптов в веб-версии или даже в сборке node-webkit, однако с Atom скрипты загружаются неправильно.

Я сделал небольшой пример, чтобы проиллюстрировать проблему. Это сборка для Mac.
https://github.com/cniaulin/загрузка-выпуск

Клонируйте репо, запустите Atom.app. Посмотрите, определен ли момент, если да, cmd + r, вы увидите, что это не всегда так.
Вы можете отобразить консоль с помощью cmd + alt + i
Файлы находятся здесь: Atom.app/Contents/Resources/app/

У кого-нибудь есть решение или обходной путь?

Самый полезный комментарий

@cniaulin Обходной путь — освободить переменную require , переименовав ее во что-то другое перед загрузкой require.js следующим образом:

<script>
  if (window.require) {
    window.nodeRequire = window.require;
    delete window.require;
  }
</script>

Вам нужно будет вызвать nodeRequire везде, где вы хотите вызвать версию Node.js require .

Все 3 Комментарий

Привет, все, что я знаю о requireJs, это то, что у них есть аналогичный метод require с узлом, который конфликтует, попробуйте использовать requirejs в качестве подстановочного метода.

Рекомендация: используйте npm для установки пакетов/модулей только для Node в каталог проектов node_modules, но не настраивайте RequireJS для просмотра внутри каталога node_modules. Также избегайте использования относительных идентификаторов модулей для ссылки на модули, предназначенные только для Node. Поэтому не делайте что-то вроде require("./node_modules/foo/foo").

ищите дальше http://requirejs.org/docs/node.html

@cniaulin Обходной путь — освободить переменную require , переименовав ее во что-то другое перед загрузкой require.js следующим образом:

<script>
  if (window.require) {
    window.nodeRequire = window.require;
    delete window.require;
  }
</script>

Вам нужно будет вызвать nodeRequire везде, где вы хотите вызвать версию Node.js require .

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

Была ли эта страница полезной?
0 / 5 - 0 рейтинги