اندازهی قلم متن
تخمین مدت زمان مطالعهی مطلب:
دو دقیقه
یکی از ابزارهایی که برای این بسته تولید شدهاست و به شما کمک میکند تا بسته بندی راحتتری داشته باشید و یک نوع ویزارد را در CLI به شما نشان میدهد، ابزار electron-packager-interactive است که به طریق زیر آن را نصب میکنیم:
npm install -g electron-packager-interactive
electron-packager-interactive
epi
? Overwrite output directory ? Yes ? Use asar source packaging ? Yes ? Select Electron app source directory: E:\Projects\electron\dbtest ? Select Electron app output directory: E:\Projects\electron\dbtest\releases ? Select Application name: myapp ? Select App Bundle Id (optional): 12 ? Select App Version(optional): 0.0.1 ? Select Electron icon file: ? Select Electron version release: 0.34.1 ? Select platforms: all ? Select architecture: all
پیکربندی از طریق packages.json
شما میتوانید برای بسته بندی از طریق این فایل، یک پروفایل ایجاد کنید و بر اساس اطلاعات هر پروفایلی که دوست دارید، بسته بندی را انجام دهید؛ یا مثلا دوست دارید برای هر پلتفرم تنظیمات خاصی را داشته باشید. برای اینکار شما میتوانید به تعداد دلخواهی از خصوصیت build را مانند کد زیر داشته باشید:
"scripts": { "start": "./node_modules/.bin/electron .", "test":"eslint .", "build":"electron-packager . myapp --platform=all --arch=all --overwrite --ignore=node_modules/dev-dependency --asar", "build:win32":"electron-packager . myapp --platform=win32 --arch=ia32 --overwrite --ignore=node_modules/dev-dependency --asar", "build:win64":"electron-packager . myapp --platform=win64 --arch=x64 --overwrite" },
در کد بالا من سه نوع پیکربندی را برای build تعریف کردهام. در اولین پیکربندی بسته بندی برنامه برای همه پلتفرمها و معماریها انجام میگیرد و در دومین پیکربندی فقط برای سیستم عامل ویندوز نسخه 32 بیتی آن و در سومین پیکربندی، نسخه 64 بیتی مد نظر است که البته ویژگی asar و فلگ ignore را مانند دو پیکربندی قبلی به همراه ندارد. برای صدا زدن آنها در CLI هم باید به شکل زیر عمل کنید:
npm run build npm run build:win32 npm run build:win64
افزودن فایلهای ایستا به بسته بندی
یکی از مشکلاتی که هنگام بسته بندی به آن برخوردم این بود که فایل sql.txt به بسته نهایی اضافه نشده بود و برنامه به همین علت terminate میشد. برای اینکه به این مشکل دچار نشوید، بهتر هست این موارد را داخل یک دایرکتوری قرار داده تا بعد از بسته بندی، دایرکتوری را به راحتی به بسته نهایی کپی کنید. با توجه به صحبتهایی که با یکی از تولیدکنندگان پکیج داشتم، ایشان متذکر شدند با اینکه این بسته حاوی یک لیست سیاه برای انتقال فایلهاست، ولی فایلی مثل sql.txt مشکلی ندارد. اما با این حال اگر به مشکل برخورد کردید، این مورد را خودتان دستی انجام دهید.