簡體   English   中英

電子封裝后不支持ES6

[英]ES6 is not supported after Electron packaging

我在基於Electron的應用程序中使用各種ES6語法 (例如import等)和React代碼( JSX )。 在開發過程中,我正在使用電子預編譯包(作為dev依賴項 )以支持這些新功能,並且它可以完美地運行而沒有任何錯誤。

但是在使用electronic-packager軟件包打包我的應用程序並運行可分發的應用程序文件之后,我遇到了不支持的與ES6相關的錯誤,例如:

Unexpected token import

這就是我運行electron-packager命令的方法(通知平台和架構標志):

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

我的應用程序的打包/可分發版本不支持ES6 / React功能的任何原因?

解決了。

事實證明,默認情況下, devDependencies在打包過程中被忽略,這意味着對於打包的應用程序, electron-prebuild-compile軟件包“不在游戲中”,沒有它,ES6就無法進行轉換。 因此,為了停用此默認行為,我必須使用--no-prune標志調用packager命令,以便devDependencies保持不被刪除:

electron-packager . MyCoolApp --platform=linux --arch=x64 --no-prune

另外,我必須引入一個新腳本(讓我們命名為: es6-init.js )來初始化主應用程序的腳本,以便在呈現之前“編譯”代碼(它應該用作主要的入口點腳本)你的申請):

var appRoot = path.join(__dirname, '..');

require('electron-compile').init(appRoot, require.resolve('./main'));

參考文獻:

Nodejs(以及它,Electron)不支持importexport 你需要使用require();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM