2016-11-24 13 views
6

मेरे पास Electron ऐप है जहां मैं समांतर रिलीज चैनलों को पेश करना चाहता हूं: stable, next (प्रारंभिक गोद लेने वालों के लिए) और dev (नवीनतम निर्माण का परीक्षण करने के लिए)।इलेक्ट्रॉन/इलेक्ट्रॉन-निर्माता के साथ रिलीज चैनल कैसे बनाएं?

इनके पास प्रत्येक शाखा होगी, जिसमें नई विशेषताएं dev में दिखाई दे रही हैं, बीटा परीक्षण के लिए next पर प्रगति कर रही है और अंततः stable में जा रही है।

मैं इन रिलीज पैकेजों को बनाने के लिए electron-builder का उपयोग कर रहा हूं, और मैं चाहता हूं कि प्रत्येक के पास अपने स्वयं के ऑटो-अपडेट हों - इसलिए जब मैं एक नया next प्रकाशित करता हूं तो सभी उपयोगकर्ताओं को अपडेट मिल जाता है।

मैं चाहता हूं कि एप्लिकेशन स्वतंत्र हों - उपयोगकर्ता के पास दो चैनल स्थापित हो सकते हैं और दोनों एक ही समय में चल सकते हैं। उनके पास अलग-अलग नाम और अलग-अलग आइकन होंगे।

मैं इसे मैन्युअल रूप से शाखाओं में सेट कर सकता हूं, लेकिन वास्तव में मैं इसे जितना संभव हो स्वचालित करना चाहता हूं - next शाखा से प्रकाशित प्रकाशन का नाम सही नाम, आइकन, आईडी और अद्यतनकर्ता को इसके जोखिम के बिना उपयोग करना चाहिए गलत चैनल

क्या इलेक्ट्रॉन या इलेक्ट्रॉन-निर्माता के साथ ऐसा करने का कोई तरीका है?

उत्तर

5

electron-builder के साथ यह संभव है। मेरे पास कई बिल्ड कॉन्फ़िगरेशन होंगे और बिल्डिंग के दौरान उपयोग करने के लिए electron-builder बताएं।

उदाहरण के लिए, निम्न सेटअप के साथ फ़ाइल config/beta.json बनाएँ:

{ 
    "appId": "com.company.beta", 
    "productName": "App Beta", 
    "directories": { 
    "buildResources": "build/beta" // directory containing your build-specific assets (e.g., beta icons - icon.icns, icon.ico & background.png) 
    }, 
    "mac": { 
    "category": "public.app-category.finance" 
    }, 
    "win": { 
    "target": [ 
     "nsis" 
    ] 
    }, 
    "nsis": { 
    "perMachine": false 
    }, 
    "publish": [ 
    { 
     "provider": "s3", 
     "bucket": "com-app-beta" // dedicated S3 bucket for each build 
    } 
    ], 
} 

और next.json और current.json (तदनुसार सेटिंग संपादित करने के लिए सुनिश्चित करें) के लिए config/beta.json नकल।

package.json में, जोड़ने के निम्न स्क्रिप्ट का निर्माण (ध्यान दें --em.name=app-beta अधिलेखित करने के लिए package.json के "नाम" मूल्य):

{ 
    "scripts": { 
     "build": "build -owl --x64 --config ./config/current.json -p always --em.name=app", 
     "build-beta": "build -owl --x64 --config ./config/beta.json -p always --em.name=app-beta", 
     "build-next": "build -owl --x64 --config ./config/next.json -p always --em.name=app-next" 
    } 
} 

भागो निर्माण स्क्रिप्ट जब तैनात करने के लिए तैयार:

npm run build-beta 
संबंधित मुद्दे