ស្វែងយល់ពី Application Packaging នៅក្នុង Electron

អ្នកប្រើប្រាស់កុំព្យូទ័រភាគច្រើនពិតជាបានស្គាល់ហើយនូវប្រភេទឯកសារបង្រួម(compressed) ដែលអាចធ្វើឡើងដោយប្រើកម្មវិធីមួយចំនួនដូចជា WinRar, WinZip និង 7-zip ជាដើម។ គុណប្រយោជន៍មួយនៃការធ្វើបែបនេះគឺ ដើម្បីឲ្យអ្នកប្រើប្រាស់អាចវិចខ្ចប់ឯកសារជាច្រើនដាក់ក្នុងឯកសារតែមួយ ព្រោះវាមានភាពងាយស្រួលក្នុងការចែកចាយ។ យ៉ាងណាមិញអ្នកក៏អាចប្រើគោលគំនិតនេះដើម្បីវិចខ្ចប់ និងចែកចាយកម្មវិធី Electron របស់អ្នកផងដែរ ដោយប្រើប្រភេទឯកសារ Asar។

អត្ថបទនេះនឹងបង្ហាញអំពីការវិចខ្ចប់កម្មវិធីទៅជាប្រភេទឯកសារ Asar នៅក្នុង Electron។

Asar គឺជាប្រភេទឯកសារមួយដែលស្រដៀងនឹងឯកសារប្រភេទ Tar ដែរ។ Electron អាចប្រើប្រាស់រាល់ឯកសារដែលនៅក្នុងវាដោយមិនចាំបាច់ធ្វើការពន្លាត។

ការតម្លើង

$ npm install -g asar

ការបង្កើតឯកសារ Asar

$ asar pack my-techfree-app techfree.asar

ការប្រើប្រាស់ឯកសារ Asar

ដើម្បីប្រើប្រាស់ឯកសារប្រភេទនេះនៅក្នុងកម្មវិធី Electron អ្នកអាចអនុវត្តតាមពីររបៀបគឺតាមរយៈ Node API និង Web API។ ខាងក្រោមនេះគឺជាឧទារណ៍នៃឯកសារ Asar មួយ ដែលមានឈ្មោះថា techfree.asar។

$ asar list /desktop/techfree.asar
/main.js
/readme.txt
/import/module.js
/import/jquery.min.js
/client/index.html
/client/main.css

Node API

នៅក្នុង Node ឯកសារ Asar ប្រៀបបានដូចជា Directory មួយអញ្ចឹង។ ដូច្នេះអ្នកអាចអនុវត្តតាមវិធីខាងក្រោម៖

ការ Read ឯកសារនៅក្នុង Asar

const fs = require('fs')
fs.readdirSync('/desktop/techfree.asar/readme.txt')

ដើម្បីហៅ Module ពីឯកសារ Asar

require('/desktop/techfree.asar/import/module.js')

យកឯកសារ HTML នៅក្នុង Asar មកបង្ហាញជា Browser Window

const {BrowserWindow} = require('electron')
let win = new BrowserWindow({width: 800, height: 600})
win.loadURL('file:///desktop/techfree.asar/client/index.html')

Web API

មិនខុសពី Node API ប៉ុន្មានទេ នៅក្នុង Web API ឯកសារ Asar ក៏ត្រូវបានគេចាត់ទុកជា Directory។ អ្វីដែលខុសប្លែកនោះគឺ Protocol “file:” ត្រូវបានគេមកប្រើប្រាស់ដើម្បីឲ្យកម្មវិធីអាចប្រើប្រាស់ឯកសារនៅក្នុង Asar បាន។

<script>
let techfree = require('./jquery.min.js')
techfree.get('file:///desktop/techfree.asar/readme.txt', (data) => {
  console.log(data)
})
</script>