Я немного застрял в процессе сборки.
- В настоящее время у меня есть приложение ReactJS, работающее на реагирующих сценариях для dev, и оно работает в приложении Electron (которое подключается к экземпляру localhost: 3000).
- Я использую электронный строитель в два этапа для создания файла приложения (Mac).
- Я использую Yarn в качестве менеджера пакетов.
Мои свойства package.json scripts
и build
выглядят так (пропущены несущественные свойства):
"scripts": {
"start": "nf start -p 3000",
"build": "react-scripts build",
"preelectron-pack": "yarn run build",
"electron-pack": "build -c.extraMetadata.main=src/start.js",
},
"build": {
"appId": "nonExistant",
"files": [
"src/**/*",
"public/*",
"node_modules/**/*"
],
"directories": {
"buildResources": "public"
}
}
В моем основном стартовом файле (как указано в scripts.['electron-pack']
) мой сценарий start.js, который выглядит как любой шаблонный стартовый сценарий с реагирующим электроном, выполняет это во время моего 'activate'
события, которое выглядит следующим образом:
mainWindow.loadURL(
process.env.ELECTRON_START_URL
|| url.format({
pathname: path.join(__dirname, '../public/index.html'),
protocol: 'file:',
slashes: true,
}),
);
Моя структура каталогов выглядит следующим образом:
public/*
где находится мой файл index.html (нетранслируемый).
src/*
, где живет мой реактивный проект.
node_modules/*
довольно очевидно, этот.
- Сборки вставляются в
build/*
- Распространяется в
dist/*
Когда я открываю файл приложения из dist/mac/<name>.app
, я получаю следующее сообщение в моей консоли:
Not allowed to load local resource: file:///<path>/dist/mac/<name>.app/Contents/Resources/app.asar/public/index.html
Изменение loadURL с ../public/index.html
на ../build/index.html
не исправляет это и выдает мне ту же ошибку со ссылкой на точно такой же путь.