Electron-Windows-Store: CLI ที่รับเอาต์พุตแพ็กเกจของแอป Electron ของคุณ จากนั้นแปลงเป็นแพ็คเกจ AppX สิ่งนี้ทำให้คุณสามารถส่งแอพ Electron ของคุณไปที่ Windows Store ได้ คุณยังสามารถเผยแพร่แอปของคุณเป็น .appx
ได้โดยไม่ต้องใช้ Windows Store ทำให้ผู้ใช้สามารถคลิกสองครั้งที่ .appx
ของคุณเพื่อติดตั้งโดยอัตโนมัติ
หากต้องการติดตั้งเครื่องมือบรรทัดคำสั่งนี้ ให้รับโดยตรงจาก npm:
npm install -g electron-windows-store
จากนั้น กำหนดค่า PowerShell ของคุณ:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
หากต้องการเปลี่ยนแอป Electron ให้เป็นแพ็คเกจ AppX ให้รัน:
electron-windows-store --input-directory C:myelectronapp --output-directory C:outputmyelectronapp --package-version 1.0.0.0 --package-name myelectronapp
เครื่องมือนี้รองรับสองวิธีในการสร้างแพ็คเกจ AppX: โดยใช้การคัดลอกไฟล์ด้วยตนเอง หรือใช้ Windows Containers ตัวเลือกแรกต้องการเพียง Windows 10 SDK ในขณะที่ตัวเลือกที่สองต้องใช้ Desktop App Converter ด้วย
ก่อนที่จะรัน Electron-Windows-Store CLI โปรดตรวจสอบให้แน่ใจว่าเรามีข้อกำหนดเบื้องต้นทั้งหมดแล้ว คุณจะต้องการ:
node -v
) จัดทำแพ็กเกจแอปพลิเคชันโดยใช้อิเล็กตรอน-แพ็กเกอร์ (หรืออะไรที่คล้ายกัน) ตรวจสอบให้แน่ใจว่าได้ลบ node_modules ที่คุณไม่ต้องการในแอปพลิเคชันสุดท้ายของคุณ
ผลลัพธ์ควรมีลักษณะโดยประมาณดังนี้:
├── Ghost.exe
├── LICENSE
├── content_resources_200_percent.pak
├── node.dll
├── pdf.dll
├── resources
│ ├── app
│ └── atom.asar
├── snapshot_blob.bin
├── [... and more files]
จาก PowerShell ที่ยกระดับ (เรียกใช้ "ในฐานะผู้ดูแลระบบ") ให้รัน electron-windows-store
ด้วยพารามิเตอร์ที่จำเป็น โดยส่งผ่านทั้งไดเร็กทอรีอินพุตและเอาต์พุต ชื่อแอป และเวอร์ชัน หากคุณไม่ผ่านพารามิเตอร์เหล่านี้ เราก็จะขอให้คุณระบุ
electron-windows-store --input-directory C:myelectronapp --output-directory C:outputmyelectronapp --package-version 1.0.0.0 --package-name myelectronapp
นี่คือตัวเลือกทั้งหมดสำหรับ CLI:
-h, --help output usage information
-V, --version output the version number
-c, --container-virtualization Create package using Windows Container virtualization
-b, --windows-build Display Windows Build information
-i, --input-directory <path> Directory containing your application
-o, --output-directory <path> Output directory for the appx
-p, --package-version <version> Version of the app package
-n, --package-name <name> Name of the app package
--package-display-name <displayName> Display name of the package
--package-description <description> Description of the package
--package-background-color <color> Background color for the app icon (example: #464646)
-e, --package-executable <executablePath> Path to the package executable
-a, --assets <assetsPath> Path to the visual assets for the appx
-m, --manifest <manifestPath> Path to a manifest, if you want to be overwritten
-d, --deploy <true|false> Should the app be deployed after creation?
--identity-name <name> Name for identity
--publisher <publisher> Publisher to use (example: CN=developmentca)
--publisher-display-name <publisherDisplayName> Publisher display name to use
--make-pri <true|false> Use makepri.exe (you don't need to unless you know you do)
--windows-kit <windows-kit> Path to the Windows Kit bin folder
--dev-cert <dev-cert> Path to the developer certificate to use
--cert-pass <cert-pass> Password to use when signing the application (only necessary if a p12 certication is used)
--desktop-converter <desktop-converter> Path to the desktop converter tools
--expanded-base-image <base-image> Path to the expanded base image
--makeappx-params <params> Additional parameters for Make-AppXPackage (example: --makeappx-params "/l","/d")
--signtool-params <params> Additional parameters for signtool.exe (example: --makeappx-params "/l","/d")
--create-config-params <params> Additional parameters for makepri.exe "createconfig" (example: --create-config-params "/l","/d")')
--create-pri-params <params> Additional parameters for makepri.exe "new" (example: --create-pri-params "/l","/d")')
--verbose <true|false> Enable debugging (similar to setting a DEBUG=electron-windows-store environment variable)
คุณสามารถเรียกแพ็คเกจนี้ได้โดยตรง ตัวเลือกทั้งหมดสอดคล้องกับตัวเลือก CLI และเป็นทางเลือกที่เท่าเทียมกัน มีข้อยกเว้นประการหนึ่ง: คุณสามารถจัดเตรียมฟังก์ชัน finalSay
ได้ ซึ่งจะถูกดำเนินการก่อนที่จะเรียกใช้ makeappx.exe
สิ่งนี้ช่วยให้คุณสามารถแก้ไขโฟลเดอร์เอาท์พุตก่อนที่เราจะแปลงเป็นแพ็คเกจ
const convertToWindowsStore = require ( 'electron-windows-store' )
convertToWindowsStore ( {
containerVirtualization : false ,
inputDirectory : 'C:\input\' ,
outputDirectory : 'C:\output\' ,
packageVersion : '1.0.0.0' ,
packageName : 'Ghost' ,
packageDisplayName : 'Ghost Desktop' ,
packageDescription : 'Ghost for Desktops' ,
packageExecutable : 'app/Ghost.exe' ,
assets : 'C:\assets\' ,
manifest : 'C:\AppXManifest.xml' ,
deploy : false ,
publisher : 'CN=developmentca' ,
windowsKit : 'C:\windowskit' ,
devCert : 'C:\devcert.pfx' ,
certPass : 'abcd' ,
desktopConverter : 'C:\desktop-converter-tools' ,
expandedBaseImage : 'C:\base-image.wim' ,
makeappxParams : [ '/l' ] ,
signtoolParams : [ '/p' ] ,
makePri : true ,
createConfigParams : [ '/a' ] ,
createPriParams : [ '/b' ] ,
protocol : "ghost-app" ,
finalSay : function ( ) {
return new Promise ( ( resolve , reject ) => resolve ( ) )
}
} )
Desktop App Converter สามารถเรียกใช้ตัวติดตั้งและแอปของคุณระหว่างการแปลงภายใน Windows Container สิ่งนี้จำเป็นต้องติดตั้ง Desktop App Converter และมีข้อกำหนดขั้นสูงเพิ่มเติม
appx
โดยใช้คอนเทนเนอร์ Windows ให้ใช้วิธี "การคัดลอกไฟล์" ที่อธิบายไว้ข้างต้น
ตรวจสอบให้แน่ใจว่าคอมพิวเตอร์ของคุณสามารถใช้งานคอนเทนเนอร์ได้: คุณจะต้องมีโปรเซสเซอร์ 64 บิต (x64) การจำลองเสมือนที่ใช้ฮาร์ดแวร์ช่วย และการแปลที่อยู่ระดับที่สอง (SLAT) คุณจะต้องมี Windows 10 Enterprise Edition
ก่อนที่จะรัน CLI เป็นครั้งแรก คุณจะต้องตั้งค่า "Windows Desktop App Converter" การดำเนินการนี้จะใช้เวลาสักครู่ แต่อย่ากังวล คุณต้องทำเพียงครั้งเดียวเท่านั้น ดาวน์โหลดและ Desktop App Converter จากที่นี่ คุณจะได้รับสองไฟล์: DesktopAppConverter.zip
และ BaseImage-14316.wim
DesktopAppConverter.zip
จาก PowerShell ที่ยกระดับ (เปิดด้วย "เรียกใช้ในฐานะผู้ดูแลระบบ" ตรวจสอบให้แน่ใจว่านโยบายการดำเนินการระบบของคุณอนุญาตให้เราเรียกใช้ทุกสิ่งที่เราตั้งใจจะเรียกใช้โดยการเรียก Set-ExecutionPolicy bypass
BaseImage-14316.wim
) โดยการเรียก .DesktopAppConverter.ps1 -Setup -BaseImage .BaseImage-14316.wim
จากนั้นรัน electron-windows-store
ด้วยแฟล็ก --container-virtualization
!
เมื่อดำเนินการแล้ว เครื่องมือจะเริ่มทำงาน: โดยจะยอมรับแอป Electron ของคุณเป็นอินพุต จากนั้นจะเก็บถาวรแอปพลิเคชันของคุณเป็น app.zip
เครื่องมือนี้ใช้ตัวติดตั้งและ Windows Container เพื่อสร้างแพ็คเกจ AppX "แบบขยาย" รวมถึง Windows Application Manifest ( AppXManifest.xml
) รวมถึงระบบไฟล์เสมือนและรีจิสตรีเสมือนภายในโฟลเดอร์เอาท์พุตของคุณ
เมื่อเรามีไฟล์ AppX ที่ขยายแล้ว เครื่องมือจะใช้ Windows App Packager ( MakeAppx.exe
) เพื่อสร้างแพ็คเกจ AppX ไฟล์เดียวจากไฟล์เหล่านั้นบนดิสก์ สุดท้ายนี้ สามารถใช้เครื่องมือเพื่อสร้างใบรับรองที่เชื่อถือได้บนคอมพิวเตอร์ของคุณเพื่อลงนามแพ็คเกจ AppX ใหม่ ด้วยแพ็คเกจ AppX ที่ลงนามแล้ว CLI ยังสามารถติดตั้งแพ็คเกจบนเครื่องของคุณได้โดยอัตโนมัติ
ครั้งแรกที่คุณเรียกใช้เครื่องมือนี้ จำเป็นต้องทราบการตั้งค่าบางอย่าง มันจะถามคุณเพียงครั้งเดียวและเก็บคำตอบของคุณไว้ในโฟลเดอร์โปรไฟล์ของคุณในไฟล์ . .electron-windows-store
คุณยังสามารถระบุค่าเหล่านี้เป็นพารามิเตอร์เมื่อเรียกใช้ CLI ได้อีกด้วย
{
"publisher" : " CN=developmentca " ,
"windowsKit" : " C: \ Program Files (x86) \ Windows Kits \ 10 \ bin \ x64 " ,
"devCert" : " C: \ Tools \ DesktopConverter \ Certs \ devcert.pfx " ,
"desktopConverter" : " C: \ Tools \ DesktopConverter " ,
"expandedBaseImage" : " C: \ ProgramData \ Microsoft \ Windows \ Images \ BaseImage-14316 \ "
}
คุณสามารถจับคู่แอป Electron ของคุณกับฝ่ายสนับสนุน UWP ที่มองไม่เห็นได้ ทำให้แอป Electron ของคุณสามารถเรียก WinRT API ทั้งหมดได้ ลองดูตัวอย่างที่นี่
แพ็คเกจ AppX ที่คอมไพล์แล้วยังคงมีไฟล์ปฏิบัติการ win32 - และดังนั้นจึงจะไม่ทำงานบน Xbox, HoloLens หรือโทรศัพท์
electron-windows-store
ใช้ Semantic Release เพื่อทำให้กระบวนการรีลีสทั้งหมดเป็นแบบอัตโนมัติ หากต้องการรวม PR โปรดตรวจสอบให้แน่ใจว่า PR ของคุณปฏิบัติตามแนวทางการดำเนินการเพื่อให้โรบอตของเราสามารถเข้าใจการเปลี่ยนแปลงของคุณได้ พื้นที่เก็บข้อมูลนี้ใช้กฎ conventional-changelog
ที่เป็นค่าเริ่มต้น
ได้รับอนุญาตโดยใช้ใบอนุญาต MIT (MIT); ลิขสิทธิ์ (c) Felix Reseberg และ Microsoft Corporation สำหรับข้อมูลเพิ่มเติม โปรดดูใบอนุญาต