Использование зависимости с оператором 'export' прерывается при запуске приложения Electron - PullRequest
0 голосов
/ 02 июля 2019

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

Я настроил наименьшее возможное репо для воспроизведения проблемы: fstephany / bug-report-Electron-Webpack .

Вот мой package.json :

{
  "name": "electron-webpack-quick-start",
  "version": "0.0.0",
  "license": "MIT",
  "esm": "auto",
  "scripts": {
    "dev": "electron-webpack dev",
    "compile": "electron-webpack",
    "dist": "yarn compile && electron-builder",
  },
  "dependencies": {
    "source-map-support": "^0.5.12",
    "esm": "^3.2.25",
    "@atlaskit/navigation-next": "6.3.0"
  },
  "devDependencies": {
    "electron": "5.0.4",
    "electron-builder": "^20.44.4",
    "electron-webpack": "^2.7.1",
    "webpack": "~4.35.0"
  } 
}

И мой src/renderer/index.js, который просто загружает внешнюю зависимость:

import { LayoutManager } from "@atlaskit/navigation-next";

let app = document.getElementById("app");
let layoutManager = LayoutManager;
console.log(app);
console.log(layoutManager);

Когда я запускаю приложение с $ yarn dev. Я получаю сообщение об ошибке в веб-консоли из окна Электрон:

Uncaught /home/fstephany/Code/Play/new-electron-webpack-project/node_modules/@atlaskit/navigation-next/index.js:2
export { default as ContainerHeader } from './components/presentational/ContainerHeader';
^^^^^^

SyntaxError: Unexpected token export
    at new Script (vm.js:85:7)
    at createScript (vm.js:266:10)
    at Object.runInThisContext (vm.js:314:10)
    at Module._compile (internal/modules/cjs/loader.js:742:26)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:820:10)
    at Module.load (internal/modules/cjs/loader.js:677:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:609:12)
    at Function.Module._load (internal/modules/cjs/loader.js:601:3)
    at Module.require (internal/modules/cjs/loader.js:715:19)
    at require (internal/modules/cjs/helpers.js:14:16)

SyntaxError: Unexpected token export заставляет меня думать, что чего-то не хватает в прозрачном Вавилоне. Особенно, когда в примечании к выпуску @ atlaskit / navigation-next version 5.0.0 прямо упоминается:

Удалите ES5 из всех модулей потока

Отказ от поддержки CJS во всех пакетах @atlaskit

Как серьезное изменение, все пакеты @atlaskit будут сбрасывать cjs распространяет и будет распространять только esm. Это означает, что все распределено код будет передан, но все равно будет содержать импорт и экспорт декларации.

Есть идеи, как это исправить? Я пробовал разные конфигурации Babel, но я чувствую, что поворачиваюсь по кругу ...

1 Ответ

0 голосов
/ 03 июля 2019

Я заставил его работать, установив зависимость от atlaskit в настройках модуля в электронном веб-пакете.См. коммит для контекста.

"electronWebpack": {
  "whiteListedModules": ["@atlaskit/navigation-next"]
},
...