Извините, мой английский sh плохой.
У меня есть приложение Elecron. Это приложение работает на Windows. Далее надеюсь поработать в macOS. Однако метод LoadFile возвращает разные пути при запуске с помощью команды «electronics.» И при запуске как файла приложения. В результате в файле приложения не может прочитать первый HTML файл.
Это мои каталоги. (Значительно опущено)
root
├ src/
│ └ main.ts
│ └ index.ts
├ dist/
│ ├ main.js
│ ├ index.js
│ ├ index.html (★First read file by renderer)
│ └ (Many other files)
├ application/
│ ├ builder-effective-config.yaml
│ ├ mac
│ │ └ application.app
│ ├ app-1.0.0-mac.zip
│ ├ win-unpacked
│ │ └ (Many Electron files)
│ └ app.zip(for Windows)
├ node_modules/
├ package.json
├ package-lock.json
├ webpack.config.json
└ (Many other files)
Я использую TypeScript и конвертирую из sr c папку в папку dist командой "Webpack". И тест с "электроном". команда. Наконец, выполните вывод из папки dist в папку приложения с помощью команды "electronic-builder --ma c".
Вот часть загрузки main. js.
const mainWindow = new BrowserWindow(option);
// NG
mainWindow.loadFile(`index.html`)
// OK
mainWindow.loadURL(`file://${dirname}/index.html`)
В паттерне NG работает только когда запускается "электроном". Команда, потому что структура другая.
Это структура файла приложения.
application.app
└ Contents/
└ Resources
└ app
├ dist/
├ node_modules/
└ package.json
Метод LoadFile возвращает «путь к папке приложения». В файле приложения вам нужно добавить «dist / "на путь.
Если честно, у меня много вопросов.
- Почему метод LoadURL можно использовать в обоих шаблонах, а шаблон LoadFile использовать нельзя в приложении.
- Это неправильно, что в папке приложения есть папка и пакет node_modules. json? (= неправильная настройка сборки)
- Какая настройка лучше?