Nano Hash - криптовалюты, майнинг, программирование

Поддерживает ли Electron v4 модули ECMAScript?

Я пишу приложения с помощью Electron. Текущая версия 4.0.6 основана на Node 10.11.0 и Chrome 69.0.3947.106.

Я думал, что последняя версия Electron будет поддерживать модули ECMAScript (ES6), но пока мне не удалось заставить их работать. В частности, при запуске приложения строка:

импортировать {runTask} из './action';

дает ошибку времени выполнения:

Uncaught SyntaxError: Неожиданный токен {

Прежде чем я приложу больше усилий для отслеживания проблем, я хотел бы узнать статус поддержки модулей в Electron.

Поддерживает ли Electron версии 4 (Chrome 69) модули ECMAScript (ES6)?


  • Discussion.atom.io/t/does-electron-support- es6 / 19366/19 08.03.2019
  • Используете ли вы синтаксис импорта в основном процессе или процессе рендеринга? 08.03.2019
  • Mayank: Спасибо за ссылку. Я бы не хотел использовать Babel или другие транспилеры в Electron, потому что он использует только одну технологию браузера (Chrome / V8). 11.03.2019
  • @ghybs: я пытаюсь выполнить импорт в процессе рендеринга. Конечно, поддерживаемая языковая функция ES6 должна работать везде: основной, рендеринг, рабочие процессы? 11.03.2019

Ответы:


1

Очевидно, Chrome поддержал их Chrome 63:

https://caniuse.com/#feat=es6-module-dynamic-import < / а>

Это может означать, что вы можете использовать их в своем интерфейсе?

Но узел v11.11.0, похоже, поддерживает их только с дополнительным флагом --experimental-modules:

https://nodejs.org/api/esm.html

Я не могу найти ссылку, но, может быть, узел 10.11.0 такой же, и это заставит их работать и на серверной части Electron?

(Извините, я все еще использую более старый Electron и с радостью использую старомодный require(), поэтому не могу сказать вам из личного опыта, будет ли он работать.)

08.03.2019
  • Спасибо, Даррен. Да, я отказался от импорта и вернулся к require (). Это работает, но я думал, что импорт будет поддерживаться сейчас (ES6 = 2015), и я, должно быть, делаю что-то не так ... 11.03.2019

  • 2

    Наверняка вам не хватает атрибута type="module" в вашем теге <script>.

    Тогда вы столкнетесь с проблемой файлового протокола, которую вы можете обойти, зарегистрировав свой собственный протокол, как описано в Electron Импорт модуля ES6

    13.03.2019
  • Нет, поскольку модуль не загружается с помощью HTML с ‹script›, он требуется ниже с помощью файла javascript. У меня есть только один файл javascript, загруженный HTML, а затем это javascript полностью. 14.03.2019
  • Да, это точно такая же ситуация. Итак, вы смешиваете require и import (который вы никогда не упоминаете в своем вопросе, кстати)? Без установленного атрибута type="module" синтаксис импорта полностью недопустим. 15.03.2019
  • Нет. Я не смешиваю require и import. Мне требуются модули CommonJS и импортируются модули ES6. Подход CommonJS работает, подход ES6 - нет. 23.03.2019
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..