亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

詳解Angular CLI + Electron 開發環境搭建

2019-11-19 16:02:14
字體:
來源:轉載
供稿:網友

本文介紹了Angular CLI + Electron 開發環境搭建,分享給大家

用 @angular/cli 配合 Electron 構建桌面軟件開發環境,可以在 Electron 中使用 Angular 的各種特性,使開發桌面軟件像開發網站一樣簡單、快捷,而且可以模塊化,緊跟最新技術趨勢。

安裝 Angular CLI 和 Electron

首先使用 npm 安裝 Angular Cli:

$ npm i -g @angular/cli

然后安裝 Electron

$ npm i -g electron

創建項目

用 Angular CLI 創建一個新項目:

$ ng new PROJECT-NAME --style=scss$ cd PROJECT-NAME$ npm i

這里選擇使用 SCSS 作為 css 預處理器。

構建 Electron 配置

安裝本地 Electron 依賴:

$ npm i -D electron electron-reload

electron-reload 這個是 electron 的一個可以檢測文件變化而實時刷新的包,在配置中配置這個每次文件更改后程序都會實時刷新。

Electron 是使用 index.js 作為入口文件的,可以去網上看相關教程,下面我把我的 index.js 文件貼出來供大家參考:

// index.jsconst { app, // 控制應用生命周期的模塊。 BrowserWindow, // 創建原生瀏覽器窗口的模塊} = require('electron');require('electron-reload')(__dirname);// 保持一個對于 window 對象的全局引用,不然,當 JavaScript 被 GC,window 會被自動地關閉let win;const createWindow = ()=> { // Create the browser window. win = new BrowserWindow({ width: 1200, height: 800, frame: false, defaultFontSize: 16, minWidth: 1200, minHeight: 800, icon: `file://${__dirname}/dist/assets/icon.png`, defaultMonospaceFontSize: 16, defaultEncoding: "utf-8", webPreferences: {  plugins: true } }); // 加載應用的 index.html win.loadURL(`file://${__dirname}/dist/index.html`); // 打開開發工具 win.webContents.openDevTools(); // 當 window 被關閉,這個事件會被發出 win.on('closed', () => win = null); win.on('ready-to-show', () => { win.show(); win.focus(); })};// 當 Electron 完成了初始化并且準備創建瀏覽器窗口的時候這個方法就被調用app.on('ready', createWindow);// 當所有窗口被關閉時,退出程序app.on('window-all-closed', () => { // 在 OS X 上,通常用戶在明確地按下 Cmd + Q 之前應用會保持活動狀態 process.platform !== 'darwin' && app.quit();});app.on('activate', () => { // On OS X it's common to re-create a window in the app when the // dock icon is clicked and there are no other windows open. win === null && createWindow();});

因為我們使用 Angular CLI 編譯后的文件是輸出在 dist 文件夾的,所以我們要配置 loadURL 的地址為 dist 文件夾下的 index.html 文件。同時我們最好將靜態文件都放在 src/assets 文件夾下,然后配置在 dist/assets 文件夾下就好了。

測試

可以在項目文件夾中運行以下命令查看效果了:

$ ng build --watch true$ electron ./

這樣就可以將項目啟動起來了,而且可以實時監測文件的變化刷新軟件,很便捷。

一些問題

現在軟件基本可以跑起來了,但是在項目中只能使用 Chrome API,Electron 和 Node.js 提供的 API 在項目中并不能使用,因為 @angular/cli 提供的會將這部分代碼編譯掉,程序就會報錯,那怎么辦呢?有以下幾個方法:

  1. 直接使用 Webpack 構建項目,Webpack 在配置文件中提供了 target 配置項,設置為 electron-renderer 就可以了。
  2. 使用 ng eject 彈出配置文件,然后在 webpack.config.js 中配置 "target": "electron-renderer" ,可以達到配置 webpack 的效果。
  3. 還有最后一個笨辦法,那就是在每個使用 Electron 或 Node.js API 的文件中的頂部都使用 TypeScript 的聲明來聲明 require ,強制不編譯 require ,方法如下;
declare global { interface Window { require: any; }}const electron = window.require('electron');

這三種方法都可以實現在 @angular/cli 創建的項目中使用 Electron 或 Node.js API,但都是略麻煩,希望 項目自盡快放開 target 的配置吧。

小尾巴

下面是我最近正在用 Angular4 和 Electron 構建的項目,還沒開發完成,希望給新手參考一下,也希望大佬多多指點!

最近嘗試著構建了幾個小項目,發現框架之類的主要是使用上的差別,重要的還是在大型項目中的數據架構的處理,目前我在使用的數據架構主要有 redux 和 rxjs ,各有千秋,將數據架構與框架結合起來才能實現清晰明了、簡單易開發的項目,努力向這個方法加油。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产视频在线观看一区二区| 中文字幕亚洲欧美| 91免费欧美精品| 免费不卡欧美自拍视频| 国产精品久久久久久五月尺| 国产亚洲美女精品久久久| 亚洲欧美另类国产| 91精品久久久久久久久久久| 国内揄拍国内精品| 亚洲视频在线免费看| 国产精品丝袜久久久久久不卡| 久久久久久久久久国产精品| 国产成人涩涩涩视频在线观看| 国产精品亚洲第一区| 一本色道久久88亚洲综合88| 日本高清+成人网在线观看| 国产精品激情自拍| 欧美性猛交xxxx乱大交极品| 久久免费少妇高潮久久精品99| 亚洲第一天堂无码专区| 欧美日韩国产成人在线观看| 大荫蒂欧美视频另类xxxx| 久久综合国产精品台湾中文娱乐网| 91在线直播亚洲| 成人国产精品av| 91高潮在线观看| 欧美亚洲国产日本| 亚洲精品一区二区三区不| 成人国产精品一区| 欧美网站在线观看| 777国产偷窥盗摄精品视频| 欧美成人精品一区二区三区| 日韩网站免费观看| 欧美激情视频在线免费观看 欧美视频免费一| 成人看片人aa| 欧美成人国产va精品日本一级| 国产精品一区久久| 国产精品一区二区三区久久| 久久综合电影一区| 久久国产精品久久精品| 91精品国产综合久久久久久蜜臀| 亚洲社区在线观看| 国产丝袜一区二区三区| 国产精品久久久久久久久久99| 狠狠色香婷婷久久亚洲精品| 色综合老司机第九色激情| 欧美野外猛男的大粗鳮| 丝袜亚洲另类欧美重口| 国产精品爱久久久久久久| 久久这里只有精品视频首页| 欧洲成人免费视频| 日韩中文字幕久久| 成人国产精品一区二区| 国产在线高清精品| 97国产精品人人爽人人做| 日韩成人在线播放| 亚洲影院色无极综合| 中文字幕欧美国内| 欧美视频在线观看 亚洲欧| 亚洲网站在线播放| 欧美一区三区三区高中清蜜桃| 欧美成人精品激情在线观看| 欧美韩日一区二区| 亚洲欧美另类在线观看| 国产精品最新在线观看| 亚洲国产免费av| 久久久久久噜噜噜久久久精品| 欧美一级成年大片在线观看| 欧美成人精品h版在线观看| 亚洲无限乱码一二三四麻| 国产精品户外野外| 国产在线观看91精品一区| 精品一区二区三区三区| 日韩中文字幕久久| 亚洲精品久久久久| 精品国产户外野外| 欧美在线视频免费| 亚洲欧美日韩图片| 国产91精品最新在线播放| 国产一区av在线| 欧美极品在线视频| 欧美精品久久久久久久| 高清欧美电影在线| 欧美理论片在线观看| 91免费视频网站| 日韩av不卡电影| 精品国产31久久久久久| 韩国日本不卡在线| 国产中文字幕91| 欧美性理论片在线观看片免费| 欧洲日本亚洲国产区| 日韩欧美成人网| 亚洲第一视频在线观看| 成人高清视频观看www| 亚洲欧美国内爽妇网| 高清一区二区三区日本久| www.久久草.com| 久久综合伊人77777蜜臀| 免费97视频在线精品国自产拍| 一本一道久久a久久精品逆3p| 精品女厕一区二区三区| 久久久97精品| 一区二区成人av| 久久久久国产精品免费| 中日韩美女免费视频网站在线观看| 亚洲综合色激情五月| 精品亚洲一区二区三区| 亚洲欧美国产精品久久久久久久| 国产精品视频导航| 亚洲激情 国产| 都市激情亚洲色图| 久久精品成人动漫| 色偷偷av一区二区三区乱| 欧美日韩美女在线| 超碰91人人草人人干| 岛国av在线不卡| 亚洲精品久久在线| 亚洲**2019国产| 97av在线视频免费播放| 亚洲国产日韩欧美在线动漫| 操日韩av在线电影| 国产精品视频永久免费播放| 亚洲人成在线电影| 欧美制服第一页| 久久成年人免费电影| 亚洲精品久久久久中文字幕欢迎你| 精品久久久久久中文字幕一区奶水| 亚洲九九九在线观看| 久久久久久久97| 久久久久久91| 国产区精品在线观看| 美女福利视频一区| 中文字幕久热精品视频在线| 91九色视频在线| 欧美激情视频免费观看| 精品国产一区二区三区久久久| 亚洲一区制服诱惑| 亚洲黄页视频免费观看| 中文字幕在线国产精品| 日本精品一区二区三区在线| 热草久综合在线| 亚洲第一综合天堂另类专| 91国产视频在线| 伊人亚洲福利一区二区三区| 国内揄拍国内精品| 午夜精品久久久久久久99热浪潮| 国产一区二区三区在线观看网站| 日韩在线免费观看视频| 日韩美女视频中文字幕| 国产精品网站视频| 精品福利视频导航| 国产精品对白刺激| 欧美高清视频免费观看| 在线视频亚洲欧美| 色妞久久福利网| 日韩av在线一区二区| 亚洲国产天堂久久国产91| 国产区精品在线观看| 中文字幕欧美日韩va免费视频| 亚洲已满18点击进入在线看片| 国产欧美日韩中文字幕在线| 亚洲国产精彩中文乱码av| 夜夜躁日日躁狠狠久久88av| 国产精品aaaa|