จำนวนการดูหน้าเว็บรวม

ชิงช้าไม้เนื้อแข็ง
กล่องเลี้ยงชันโรง แบบ 2 ชั้น ขนาด A4
ฟีโรโมนล่อชันโรง
กระต่ายขูดมะพร้าวหนาพิเศษ
ม้านั่งไม้เนื้แแข็ง
ถาดน้ำหวานสำหรับชันโรง
สมุนไพรแพะหงี่แห้ง
หน่อกล้วยตานี
ฟีโรโมนฉีดล่อชันโรง
กล่องเลี้ยงชันโรง
กล่องเลี้ยงผึ้งโพรง
หน่อกล้วยพระราชทาน
กาพ่นควันผึ้ง สโมคเกอร์
Inverter testerSP8030- SM852B
ไขผึ้งสำหรับผึ้งโพรงไทย
ไม้ทับกล้วยปิ้ง14-16
ขี้ชันแท้ 100% สำหรับล่อชันโรง
ฟีโรโมน ฉีดกล่องเลี้ยงชันโรง
ฟีโรโมนล่อผึ้งโพรง
ชุดฟีโรโมนและไขล่อผึ้งโพรงไทย
กล่องเลี้ยงชันโรง ขนาด 5 ชั้น แยกรัง
ขาตั้งกล่องเลี้ยงผึ้ง
ขาตั้งกล่องชันโรงไม่มีกล่อง
กล่องเลี้ยงชันโรง 2ชั้น
ถาดน้ำหวาน สำหรับเลี้ยง ชันโรง
ไม้ทับกล้วย14-18-28
กล่องเลี้ยงชันโรง เหมาะกับพันธ์ตัวเล็ก
กระต่ายขูดมะพร้าวแบบนั่ง
กล่องเลี้ยงชันโรงแยกน้ำหวานแบบ 2 ชั้น ขนาดA4
ฟีโรโมน ล่อชันโรง สูตรเข้มข้น
ฟีโรโมนฉีดล่อชันโรง รวมกับขี้ชัน
หน่อกล้วยน้ำว้า ซูปเปอร์ยักษ์
ชุดล่อผึ้งโพรง ฟีโรโมนแบบสกัด+ครีมล่อผึ้ง+ไขล่อผึ้ง
ฟีโรโมนฉีดล่อชันโรงสูตรเข้มข้น
ฟีโรโมน ล่อชันโรง (เกรดพรีเมี่ยม)
ฟีโรโมนฉีดล่อชันโรง
ชิงช้าไม้จากไม้บ้านเก่าอายุ 50 ปี
กล่องเลี้ยงชันโรงแบบ2ชั้น
ฟีโรโมนล่อผึ้งโพรงสูตรหมัก+ไขล่อผึ้งโพรง
สโม๊กเกอร์พ่นควัน
ฟีโรโมนล่อผึ้งโพรง 20 ซีซี+ไขล่อผึ้งโพรงแท้ 1 ก้อน
ไขล่อผึ้งโพรง สูตรเข้มข้น
กล่องเลี้ยงชันโรง แบบ 3 ชั้น
Debug Card (2หลัก) ดีบักการ์ด
พระสมเด็จวัดระฆัง งานพิมพ์มือ แจกงานบุญ
กล่องเลี้ยงผึ้ง
กล่องชันโรง “สวนราชินี” รุ่น A4 -3 ชั้น
กล่องเลี้ยงชันโรง ขนาด เอ4 สูง 4 นิ้ว

ผู้ติดตาม

วันอาทิตย์ที่ 1 พฤศจิกายน พ.ศ. 2569

คู่มือฉบับสมบูรณ์: การสร้างโปรแกรมเดสก์ท็อป .EXE จาก Electron และ GitHub Actions

คู่มือฉบับสมบูรณ์: การสร้างโปรแกรมเดสก์ท็อป .EXE จาก Electron และ GitHub Actions

📚 คู่มือและบันทึกขั้นตอนการพัฒนาโปรแกรม Electron App เป็นไฟล์ .EXE ผ่าน GitHub Actions

ผู้บันทึก/ผู้พัฒนา: ลุงแจ่ม อารมณ์ดี
วัตถุประสงค์: ใช้เป็นคู่มือมาตรฐาน (Standard Operating Procedure) สำหรับสร้างและแก้ไขปัญหาการคอมไพล์โปรแกรมเดสก์ท็อปจากศูนย์ (Clean Slate)


1. โครงสร้างพื้นฐานของโปรเจกต์ (Project Structure)

โปรเจกต์ประกอบด้วยไฟล์สำคัญหลักๆ ดังนี้:

  • index.html: หน้าตาอินเทอร์เฟซและการทำงานของแอปพลิเคชัน (Frontend)
  • main.js: ไฟล์ควบคุมกระบวนการหลักของระบบ Electron (Backend / Main Process)
  • package.json: ไฟล์กำหนดค่า ติดตั้งไลบรารี และสคริปต์คำสั่งการทำงาน
  • .github/workflows/build-exe.yml: ไฟล์ระบบอัตโนมัติ (GitHub Actions) สำหรับ Build ไฟล์ `.exe` บนคลาวด์

2. รายละเอียดโค้ดในแต่ละไฟล์หลัก

ก. ไฟล์ `main.js` (เวอร์ชันที่ถูกต้องสมบูรณ์)

const { app, BrowserWindow } = require('electron');
const path = require('path');

function createWindow() {
  const win = new BrowserWindow({
    width: 450,
    height: 850,
    webPreferences: {
      nodeIntegration: true,
      contextIsolation: false
    },
    autoHideMenuBar: true,
    title: "TEXAS INTECH Audio Rack"
  });

  win.loadFile('index.html');
}

app.whenReady().then(() => {
  createWindow();

  app.on('activate', () => {
    if (BrowserWindow.getAllWindows().length === 0) {
      createWindow();
    }
  });
});

// ⚠️ สำคัญ: ต้องใช้ app.quit() เท่านั้น ห้ามใช้ app.stop()
app.on('window-all-closed', () => {
  if (process.platform !== 'darwin') {
    app.quit();
  }
});

ข. ไฟล์ `package.json` (ตั้งค่าระบบและปิด Publish อัตโนมัติ)

{
  "name": "texas-intech-audio-rack",
  "version": "1.0.0",
  "description": "Pro 7-Layer Audio Rack Desktop App",
  "main": "main.js",
  "scripts": {
    "start": "electron .",
    "build": "electron-builder --win --x64"
  },
  "build": {
    "win": {
      "icon": "icon.ico"
    },
    "publish": null
  },
  "devDependencies": {
    "electron": "^28.0.0",
    "electron-builder": "^24.6.0"
  }
}

ค. ไฟล์ GitHub Actions Workflow (`.github/workflows/build-exe.yml`)

name: Build Desktop App (.exe)

on:
  push:
    branches: [ "main", "master" ]

jobs:
  build:
    runs-on: windows-latest

    steps:
    - name: Checkout Code
      uses: actions/checkout@v4

    - name: Setup Node.js
      uses: actions/setup-node@v4
      with:
        node-version: 18

    - name: Install Dependencies
      run: npm install

    - name: Build Electron App
      run: npx electron-builder --win --x64

    - name: Upload Artifacts
      uses: actions/upload-artifact@v4
      with:
        name: Windows-EXE-App
        path: dist/*.exe

3. บันทึกปัญหาที่พบทั้งหมดและแนวทางแก้ไข (Troubleshooting Log)

❌ ปัญหาที่ 1: JavaScript Error ใน Main Process (คำสั่ง `app.stop()`)

อาการ: เมื่อติดตั้งโปรแกรมลงในเครื่อง และกดปิดโปรแกรม จะมีหน้าต่าง Error เด้งขึ้นมาแจ้งว่า TypeError: app.stop is not a function[cite: 4]

สาเหตุ: ในไลบรารีของ Electron ไม่มีฟังก์ชันคำสั่งชื่อ app.stop()

วิธีแก้: เข้าไปแก้ไขในไฟล์ main.js เปลี่ยนจากคำสั่ง app.stop(); เป็น app.quit(); ให้ถูกต้อง

❌ ปัญหาที่ 2: GitHub Actions Build Fail ด้วย Exit Code 1 (Missing GitHub Token)

อาการ: ไปตรวจสอบในแท็บ Actions บน GitHub แล้วพบสถานะ Failure ขัดข้องที่ขั้นตอนการ Build พร้อมฟ้องว่า GitHub Personal Access Token is not set, neither programmatically, nor using env "GH_TOKEN"[cite: 2, 7]

สาเหตุ: electron-builder พยายามอัปโหลดไฟล์ขึ้น GitHub Releases โดยอัตโนมัติ แต่ไม่มีสิทธิ์ Token ยืนยันตัวตน

วิธีแก้: เพิ่มค่าการตั้งค่า "publish": null ไว้ภายในบล็อก "build" ของไฟล์ package.json เพื่อปิดการเผยแพร่อัตโนมัติและเก็บไฟล์ติดตั้งไว้ใน Local Artifacts ของ Actions แทน

❌ ปัญหาที่ 3: ติดตั้งทับไม่ได้ ฟ้องว่าโปรแกรมไม่สามารถปิดได้ (Cannot be closed)

อาการ: ตอนรันตัวติดตั้ง `.exe` ตัวใหม่ทับลงเครื่อง มีหน้าต่างแจ้งเตือนว่าโปรแกรมกำลังทำงานอยู่และไม่สามารถปิดได้อัตโนมัติ[cite: 6]

สาเหตุ: มีกระบวนการ (Process) ของแอปพลิเคชันเวอร์ชันเก่าค้างรันอยู่เบื้องหลังใน Windows

วิธีแก้: 1. กดปุ่ม Ctrl + Shift + Esc เพื่อเปิด Task Manager
2. กดขยายหน้าต่างด้วยปุ่ม More details
3. ค้นหาชื่อโปรแกรมหรือ Electron แล้วคลิกขวาเลือก End task เพื่อบังคับปิดให้สนิท
4. ดับเบิลคลิกไฟล์ติดตั้งใหม่อีกครั้ง


4. วิธีการใส่ไอคอนรูปเฉพาะตัวให้กับแอปพลิเคชัน (.ICO)

  1. เตรียมไฟล์รูปภาพแปลงเป็นนามสกุล .ico ขนาดแนะนำ 256x256 พิกเซล และตั้งชื่อไฟล์ว่า icon.ico
  2. อัปโหลดไฟล์ icon.ico ขึ้นไปไว้ที่หน้าหลักของโปรเจกต์บน GitHub (ผ่านปุ่ม Add file -> Upload files)
  3. กำหนดค่าเชื่อมโยงไอคอนในไฟล์ package.json ภายใต้หมวด "build" ดังนี้:
    "build": {
      "win": {
        "icon": "icon.ico"
      },
      "publish": null
    }
  4. ทำการ Commit บันทึกไฟล์ และรอ GitHub Actions ทำการคอมไพล์โปรแกรมใหม่ เพียงเท่านี้ไฟล์ติดตั้ง `.exe` และไอคอนแอปพลิเคชันก็จะเปลี่ยนเป็นรูปที่คุณต้องการทันที

💡 ข้อสังเกต: หากไม่มีการเปลี่ยนแปลงไฟล์รูปภาพ icon.ico ในโปรเจกต์ ระบบจะดึงไอคอนเดิมมาใช้งานอย่างสม่ำเสมอทุกครั้งที่มีการ Build ใหม่ครับ

ไม่มีความคิดเห็น:

สินค้า01

1Prabdasak
แหวนเพชรสุดหรู
กางเกงขายาว**ขนาดใหญ่**ผ้าฝ้ายทรงBarrel
ลูกพีชอบแห้ง หวานน้อย
ส้มกลีบอบแห้ง พริกเกลือ
เลมอนอบแห้งเคลือบน้ำผึ้งแท้
ถุงขยะดำชนิดหนาพิเศษกลิ่นไม่ฉุน
พวงกุญแจคีย์แคปใส่ชื่อได้
ต่างหูหนีบแบบห่วง(แป้นคลิปหนีบโลหะ)
หมวกกันฝุ่นซิลิโคน RJ45
เครื่องวัดแรงดันไฟฟ้า110V 220V 380V 100A KWH
เก้าอี้นอนแมว
แผ่นอะคริลิคใส(Acrylic Clear) ขนาด 120 x 120 cm
เครื่องตัดหญ้าไฟฟ้าไร้สาย 3980W
เรื่องเล่า 100 ล้านวิว อ่านแล้วชีวิตโคตรดี
กระดาษทรายซ้อนหลังแข็ง 1ชุด=10ชิ้น
แบบฝึกหัดทักษะการเขียน ประถมศึกษา 1-6
ฮอร์โมนกระตุ้นน้ำยาง
มีดกรีดยาง999 คอตัด
กล้วยไม้หวายคละสีเซ็ต 5 ต้น แถมฟรี 1 ต้น
สีไม้ 12 สี หัวเดียวมาสเตอร์อาร์ต
หินลับมีดกรีดยาง
ผ้าทรายเรียงซ้อน หลังอ่อน/หลังแข็ง
กล่องไปรษณีย์ 0+4(100ใบ)

สินค้า ice

สินค้า พรีเมี่ยม

สินค้า 1
กล่องเลี้ยงชันโรง เหมาะกับพันธ์ตัวเล็กๆ
สินค้า 2
พระสมเด็จวัดระฆัง
สินค้า 3
กระต่ายขูดมะพร้าวแบบนั่ง
สินค้า 4
เครื่องซีลฝาฟอยล์
สินค้า 5
กล่องเลี้ยงชันโรง พร้อมขาตั้ง
สินค้า 6
ล่อชันโรง จัดชุดฟีโรโมน 20ซีซี+ขี้ชัน 1 ตลับ
สินค้า 7
ชิงช้าไม้ จากไม้เนื้อแข็ง
สินค้า 8
กล่องเลี้ยงชันโรง แบบ 2 ชั้น ขนาด A4
สินค้า 9
ฟีโรโมนล่อชันโรง มัดรวมกับ ขี้ชันโรง
สินค้า 10
หน่อกล้วยตานี 1 หน่อ
สินค้า 11
เก้าอี้ไม้ สำหรับนั่งเล่น
สินค้า 12
กล่องเลี้ยงชันโรง
สินค้า 13
กล่องเลี้ยงผึ้งโพรง (ส่งทันที)
สินค้า 14
หน่อกล้วยพระเทพ หน่อกล้วยพระราชทาน
สินค้า 15
สโมคเกอร์ เครื่องพ่นควันผึ้ง
สินค้า 16
Inverter tester มิเตอร์สําหรับใช้ในการทดสอบกระแสไฟฟ้า
สินค้า 17
ไขผึ้งสำหรับผึ้งโพรงไทย
สินค้า 18
ไม้ทับกล้วยปิ้ง ไม้หนาขนาดใหญ่
สินค้า 19
แปรงขนม้าสำหรับปัดตัวผึ้ง/div>
สินค้า 20
ฟีโรโมน ฉีดกล่องเลี้ยงชันโรง

สินค้าร้านกาน้ำชา