Tôi có máy chủ của riêng mình, nơi tôi đã tải lên trình cài đặt ứng dụng qua FTP. Tên của nó là quickmargo Setup 1.0.0.exe
và nó có sẵn tại
https://quickmargo.pl/dist/doad/quickmargo Setup 1.0.0.exe
Cũng thông qua FTP tôi đã tải lên latest.yml
cùng một thư mục và nó có sẵn tại
https://quickmargo.pl/dist/doad/latest.yml
Trong dự án của tôi trong index.js tôi có
import { autoUpdater } from 'electron-updater'
autoUpdater.setFeedURL('https://quickmargo.pl/dist/download');
autoUpdater.on('update-downloaded', () => {
autoUpdater.quitAndInstall()
});
autoUpdater.on('update-available', (ev, info) => {
alert('Update required!');
});
app.on('ready', async () => {
if (process.env.NODE_ENV === 'production') {
await autoUpdater.checkForUpdates()
}
});
Trong gói.json tôi có "version": "1.0.0",
và bên trong build:{}
tôi có:
"win": {
"icon": "build/icons/icon.ico",
"publish": [{
"provider": "generic",
"url": "https://quickmargo.pl/dist/download"
}]
},
(Tôi không quan tâm đến các nền tảng khác)
Bây giờ, giả sử tôi đã thực hiện một số thay đổi trong ứng dụng của mình và tôi muốn tải lên phiên bản 1.0.1 và tôi muốn ứng dụng của mình tự động cập nhật nếu ai đó đã tải xuống trình cài đặt và cài đặt ứng dụng của tôi trên máy của anh ấy.
Xin vui lòng cho tôi biết nếu tất cả mọi thứ tôi làm cho đến nay là tốt và bước tiếp theo là gì. Tôi xem xét như sau:
- thay đổi
version
thành1.0.1
trong gói.json - chạy lệnh build trong terminal lần nữa
- tải lên trình cài đặt mới theo cách thủ công đến cùng một vị trí tại máy chủ của tôi
Biên tập
Tôi đã thực hiện trên ba bước cộng với tôi cũng đã tải lên bản mới nhất.yml (với phiên bản 1.0.1) và kết quả là khi tôi chạy cài đặt trước đó (trước khi tải phiên bản mới lên máy chủ) phiên bản 1.0.0 trên PC khác thì không phát hiện ra rằng tôi đã thêm 1.0.1 vào máy chủ và nó không cập nhật hoặc hiển thị một số cửa sổ bật lên hoặc bất cứ thứ gì. Tôi đang làm gì sai?
Chỉnh sửa 2
Tôi đang cố gắng tự mình giải quyết và bây giờ tôi đã tải lên 1.0.2 vì vậy bây giờ liên kết để tải xuống ứng dụng là:
https://quickmargo.pl/dist/doad/quickmargo Cài đặt 1.0.2.exe
Chỉnh sửa 3
Tôi đã cố gắng tự giải quyết nó bằng mã tôi đã chỉnh sửa trong index.js. Tôi cũng chỉnh sửa ở trên. alert('Update required!');
về update-available
sự kiện không bao giờ xảy ra. Nó sẽ hiển thị cho tôi cửa sổ thông báo lỗi rằng cảnh báo là không xác định. Nhưng rõ ràng sự kiện cập nhật có sẵn không bao giờ được phát ra.
Thông tin bổ sung:
- Ứng dụng của tôi đã được tạo ra với nồi hơi vue-electron
v1.0.6
. - Phiên bản cập nhật điện tử của tôi là
4.1.2
npm run build
thực sự gọi một số mã từ mẫu soạn sẵn,.electron-vue/build.js
bạn có thể thấy tệp này trong liên kết ở trên (ví dụ: nó đặt NODE_ENV để sản xuất. Script trong pack.json là :"build": "node .electron-vue/build.js && electron-builder",
.- Tôi không muốn lưu trữ các bản phát hành tại github vì kho lưu trữ của tôi là riêng tư và tôi đã thấy một số thông tin trong các tài liệu electron.build mà tôi không làm điều đó.
- Tôi cũng thấy thông tin trong một số vấn đề rằng tôi chỉ có thể tạo repo mới cho các bản phát hành nhưng tôi coi việc lưu trữ mọi thứ tại máy chủ của mình là cách tiếp cận rõ ràng hơn.
electron-log
để cung cấp cho các Autoupdater một logger để sử dụng ( const logger = require("electron-log"); autoUpdater.logger = logger; logger.transports.file.level = "debug";
) - điều này nên in ra thông tin nếu bạn máy chủ đã được tìm thấy và liệu một bản cập nhật đã được tìm thấy. Nếu bạn gặp lỗi, bạn có thể thêm nó vào câu hỏi của mình.