logo أكاديمية أكسبورت للتطوير والبرمجة logo-alt أكاديمية أكسبورت للتطوير والبرمجة
تسجيل الدخول  أو  تسجيل حساب
  • الرئيسية
  • دروس برمجية
    • HTML
    • CSS
    • ANGULAR
    • IONIC / MOBILE
    • YII 2.0
    • Odoo /epen ERP
    • مواضيع متنوعة
  • مفاهيم برمجية
  • من نحـن
  • اتصل بنا

تحويل تطبيق angular الى ملف تنفيدي على ويندوز

توليد ملف تنفيدي بواسطة electron

الدورة 103 من angular الصفحة الرئيسية

انشئ مشروع جديد  أو تأكد ان مشروعك خالي من الأخطاء عند وضع الـ prod و serve  حتى نتجنب الأخطاء 

ng new angular-electron

سطب اداة electron  التي ستمكننا من تحويل مشاريع angular الى ملفات نفيدية سواء على منصة windows او mac او linux

// ادخل الى ملف المشروع ونصب التالي
npm install electron --save-dev   
npm install electron-packager --save-dev      
npm install electron-installer-dmg --save-dev   // macOS لمن يرغب بتوليد الملف  على نظام فقط

ادهب الى ملف src/index.html  وقم بتغيير المسار القاعدي التالي  حتى يتعرف electron على مكان المصادر 

غيره الى هدا الشكل

<base href="./">

أو بامكانك اضافة مسار ديناميكي عن طريق javascript مثل هدا

 <script>document.write('<base href="' + document.location + '" />');</script>

 

ادا كنت تسعمل مكتبة  jquery   في مشروعك يتعين عليك اضافة هدا الكود مباشرة تحت المسار القاعدي برأس الصفحة حتى تضمن عمل المكتبة  مع الكترون دون مشاكل

  <script>  // for compile jquery 
    try {
        window.nodeRequire = require;
        delete window.require;
        delete window.exports;
        delete window.module;
    } catch (e) {
    }
</script>

 

قم بانشاء ملف main.js  بمجلد المشروع مجلد (root folder)

f

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

let win;

function createWindow () {
  // Create the browser window.
  win = new BrowserWindow({
    width: 1100, 
    height: 600,
    backgroundColor: '#ffffff',
    icon: `${__dirname}/dist/assets/logo.png`  // تأكد من وجود ملف الايقونة
  })

  win.loadURL(`file://${__dirname}/dist/index.html`)

  //// uncomment below to open the DevTools.
  // win.webContents.openDevTools()

  // Event when the window is closed.
  win.on('closed', function () {
    win = null
  })
}

// Create window on electron intialization
app.on('ready', createWindow)

// Quit when all windows are closed.
app.on('window-all-closed', function () {

  // On macOS specific close process
  if (process.platform !== 'darwin') {
    app.quit()
  }
})

app.on('activate', function () {
  // macOS specific close process
  if (win === null) {
    createWindow()
  }
})

 

 لا تنسى أن تغير عرض وطول واجهة البرنامج width height  حسب حاجتك التي ترغب بها أن يظهر برنامجك عن طريق هدا الكائن بملف main.js

  win = new BrowserWindow({
    width: 1100, 
    height: 600,
    backgroundColor: '#ffffff',
    icon: `file://${__dirname}/dist/assets/logo.png`
  })

 

ادهب الى ملف package.json وقم باضافة  ماهو معلم باشارة (+) بالكود

{
  "name": "angular-electron",
  "version": "0.0.0",
  "license": "MIT",
  "main": "main.js", // <-- + here
  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "electron": "electron .", // <-- + here
    "electron-build": "ng build && npm run electron ." // + <-- build app, then run electron 
  },
}

 

تأكد ان قيمة outputPath هي dist في ملف angular.json او قد تجد الملف باسم angular-cli.json

 

"outputPath": "dist", 
 

الان بامكانك التحقق من برنامجك يعمل عبر عملية  building انطلاقا من هده التعليمة

npm run electron-build

 

الان وبعدما تاكدت ان البرنامج يعمل بدون مشاكل وظهرت لك نافدة البرنامج بعد عملية  building

بامكانك بدأ عملية تحويل التطبيق الى برنامج تنفيدي 

لتوليد برنامج تنفيدي يعمل على منصة وندوز

ng build --output-path=dist/
electron-packager . --platform=win32

لتوليد برنامج على Mac os

electron-packager . --platform=darwin

توليد الملف على نظام debien linux

electron-packager . --platform=linux --arch=x64 

ادا لم تعمل معك تعليمة electron-packager قد تكون المشكلة بعدم توافق النسخة لدا جرب تنزل قيمة النسخة الى قيمة ادنى .

سياخد بعض الوقت لتحزيم برنامجك وبعدها سوف تلاحظ انه قام بانشاء مجلد /angular-electron-darwin-x64/ بمجلد المشروع  ادخل داخله وستجد تطبيقك التنفيدي

لاتنسى تعمل building بعد كل عملية توليد الملف التنفيدي لكي يقوم بتحديث التغييرات

 

 

 

 

ماهو تقييمك للدرس
تقييم الزوار للدرس
الدرس السابق : تحويل مشروع angular الى ملفات جاهزة قابلة للتنفيد على اي متصفح أو استضافة الدرس القادم : ماهو HTTP headers , request ةresponse
  • قم بتسجيل الدخول للتعليق : تسجيل الدخول أو تسجيل عضوية
الدروس المقبلة
  • ماهو HTTP headers , request ةresponse
  • الكود المتزامن Synchronous والغير متزامن Asynchronous
    Synchronous Asynchronous
  • ماهو promise
    Promises
  • شرح async , await 
    async and await 
ANGULAR
  • المستوى 101 من دورة angular
  • المستوى 102 من دورة angular
  • الدورة 103 من angular
Mobile Development
دورة تطوير تطبيق موبايل

sitemap - Exportdeveloper Academy © 2019 All rights reserved