Давайте продолжим нашу сборку настольного приложения с веб-технологиями. До сих пор у нас есть фронтальная структура Slick для создания пользовательского интерфейса. Давайте давайте убедимся, что мы можем сделать приложение из него, используя электрон . Электрон откроет 3 основных функция, которые мы можем использовать позже: доступ к машине пользователя, доступ к среде узла, а также способность к созданию настроек для разных ОС. Конечно, многое другое, но эти 3 прилипают как разница для меня.
Доступ к машине пользователя
Электрон обеспечит безопасный способ взаимодействия с машиной пользователя через API Отказ С традиционной средой на рабочем столе это тривиально. Это соединяет разрыв импорта между нашим стеком и нашим конечным продуктом.
Доступ к узлу окружающей среды
Электрон также откроет мир Узел на рабочий стол Отказ Независимо от того, как вы относитесь к JavaScript в качестве языка экосистема Agile и Vast. Экосистема узла может двигаться быстрее, чем экосистема на рабочем столе, и это большая победа для нас.
Цель сборки для разных ОС
Разработка приложений по пересечению платформы возможно в родных подходах. Как-то, даже в 2021 году, это все еще может быть болью. Электрон собирается позволить нам написать один раз и построить до разных целей . Это великолепно. Если вы делитесь библиотеками с вашим веб-приложением, вы даже сможете использовать этот код тоже.
Настраивать
Настройка нашего приложения для работы внутри электрона будет немного сложнее, чем установка Vite. Но мы доберемся туда И я сделаю все возможное, чтобы объяснить большие взлеты.
Нам нужно будет добавить несколько зависимостей в наш проект:
➜ yarn add --dev electron electron-builder electron-reloader electron-window-state npm-run-all
Большинство из них довольно самочувствительны на том, что они помогают. Для разъяснения NPM-Run-all Позвольте нам запустить несколько команд в нашем package.json в то же время.
Теперь нам нужен основной файл входа в загрузочный электрон:
➜ touch src/electron.js
В этом файле мы собираемся сделать тяжелую подъем электрона для работы с нашим приложением Vue. Я наткнулся на: Appinteractive/Electer-Vite-Failwind-Starter Отказ Большая часть того, что у меня за Electron.js Я одолжил отсюда. Я пытался упростить столько, сколько мог.
const createWindow = require('./win-helper.js')
const { app } = require('electron')
try {
require('electron-reloader')(module)
} catch {}
const isDev = !app.isPackaged
let mainWindow
function loadVitePage(port) {
mainWindow.loadURL(`http://localhost:${port}`).catch((err) => {
console.log(err)
setTimeout(() => {
// do it again as the vite build can take a bit longer the first time
loadVitePage(port)
}, 300)
})
}
function createMainWindow() {
mainWindow = createWindow('main')
mainWindow.once('close', () => {
mainWindow = null
})
const port = process.env.PORT || 3000
if (isDev) {
loadVitePage(port)
} else {
mainWindow.loadFile('dist/index.html')
}
}
app.once('ready', createMainWindow)
app.on('activate', () => {
if (!mainWindow) {
createMainWindow()
}
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
Я собирался пробежать через какую зависимость – что-то, но этот пост мог пройти весь день. Что делает этот файл:
- Загрузка наших Окно хелпер
- Загрузка электрон
- Загрузка индекса VUE приложения в наше окно
- Утилиты окон для приложения при открытии
Вы могли бы просто запустить это через Vite и Электрон Команды, но это станет старой быстрой. Вот почему NPM-Run-all это зависимость. Если мы изменим Скрипты Раздел нашего package.json к:
"scripts": {
"dev": "run-p dev:*",
"dev:vite": "vite",
"build": "vite build",
"serve": "vite preview",
"dev:electron": "electron src/electron.js"
},
Теперь, если мы хотим запустить электрон в режиме Dev, все, что нам нужно сделать, это сделать:
yarn dev
Успех!!! Довольно круто. Мы начинаем строить базу, чтобы сделать что-то круто для рабочего стола. На данный момент в серии не имеет смысла говорить о том, как построить с электроном. Поэтому мы будем решать это позже, так как у нас еще есть много разработок.
Следующий
- Создайте многоразовый макет для нашего приложения.
- Организация равных пользовательских интерфейсов с Vue.
- Поместите некоторые компоненты вместе с нашим макетом, чтобы построить страницу.
Справка
github repo – часть 2
Оригинал: “https://dev.to/douggrubba/desktop-development-for-the-web-developer-part-2-34o4”