摘要:靜態(tài)資源的訪問通過配置代理實現(xiàn)頁面的訪問,跟服務(wù)端工程毫無關(guān)系,服務(wù)端只負(fù)責(zé)提供異步接口。集中管理異步接口配置的模塊
Nicon
一言不合,先上平臺Nicon。該平臺接入github登錄,采用七牛CDN存儲,歡迎大家試用。
Nicon 是一個集圖標(biāo)上傳、展示、使用于一身的字體圖標(biāo)管理平臺,流程簡單,符合日常開發(fā)使用習(xí)慣,適合企業(yè)在內(nèi)部部署使用。采用 Iconfont 字體圖標(biāo)替換項目中圖片圖標(biāo)的使用,以達(dá)到縮減體積、風(fēng)格統(tǒng)一、提高開發(fā)效率等目的。若配合設(shè)計師使用,設(shè)計師可在平臺上管理圖標(biāo),復(fù)用圖標(biāo),減少設(shè)計圖標(biāo)耗費的時間,而開發(fā)只負(fù)責(zé)使用設(shè)計師維護(hù)好的圖標(biāo)庫,減少了與設(shè)計師的交流成本。
優(yōu)勢與其他字體圖標(biāo)管理平臺相比,它擁有以下優(yōu)勢:
使用流程簡單,符合日常開發(fā)使用習(xí)慣,無需在審核管理流程中耗費時間
適合企業(yè)內(nèi)部設(shè)計師與開發(fā)協(xié)同使用,保持圖標(biāo)的設(shè)計、管理、使用的連貫性
部署簡單,平臺自帶注冊、登錄功能,還有靜態(tài)資源路由,只需數(shù)據(jù)庫配置就可部署使用
支持接入三方登錄、資源上傳到三方CDN服務(wù)器。使用更安全,資源更穩(wěn)定
支持導(dǎo)出資源多樣化,符合多種使用場合,更有配套的導(dǎo)出工具nicon-tookit, 方便快捷
使用流程圖 協(xié)作使用最優(yōu)解目前圖標(biāo)從設(shè)計到使用的完整流程是基本是: 設(shè)計完成->視覺使用->導(dǎo)出給開發(fā)->開發(fā)處理、使用。顯然,圖標(biāo)是設(shè)計與開發(fā)共同使用的,雖然流程上看著很簡單,但是使用頻率高了之后小問題也會消耗很多的時間,現(xiàn)如今圖標(biāo)的制作與使用方式都有很多高效率的工具,但都只是單方面的。
對于設(shè)計來說,制作圖標(biāo)的工具眾多且功能強(qiáng)大,并且設(shè)計出來的圖標(biāo)也會直接在這些工具上使用,而圖標(biāo)是復(fù)用程度比較高的,所以有效的管理圖標(biāo)可以避免后續(xù)花時間重復(fù)設(shè)計。對于開發(fā)來說,圖標(biāo)的使用方式也就那么兩三種,只需要有個工具能把圖標(biāo)處理完導(dǎo)出所需類型的資源加入到代碼就行,其實不太想去管圖標(biāo)的來龍去脈。
基于以上需求,有必要做出一個可以滿足設(shè)計與開發(fā)共同協(xié)作的字體圖標(biāo)管理平臺,流程圖如下:
在以上的流程中,設(shè)計師可以使用平臺管理圖標(biāo)方便后續(xù)復(fù)用,而且不需要在跟開發(fā)溝通中耗費時間。 對于開發(fā),并不需要管理圖標(biāo)以及圖標(biāo)的處理方式,只需要適時從平臺上更新設(shè)計師管理好的圖標(biāo)庫生成的資源就行。
功能介紹該平臺的UI是參照iconfont平臺實現(xiàn)的,且iconfont平臺的圖標(biāo)可以無縫遷移到該平臺上。由于個人能力有限,做出的其實就是iconfont的簡單版,是一個純粹的圖標(biāo)管理平臺,更適合企業(yè)部署在內(nèi)部使用
1、創(chuàng)建一個圖標(biāo)庫
2、上傳圖標(biāo)。此階段為圖標(biāo)草稿階段,可進(jìn)行刪除、名稱修改,最好確保圖標(biāo)名稱唯一,點擊保存上傳之后,才可以加入圖標(biāo)庫,如果不保存或者刪除,則一直存留為草稿。
3、把圖標(biāo)加入到圖標(biāo)庫,會自動保存更新生成新的字體圖標(biāo)庫資源。進(jìn)入到指定圖標(biāo)庫后,點擊添加圖標(biāo)并選定需要添加的圖標(biāo),確認(rèn)之后會生成新的圖標(biāo)文件,完成
4、對不滿意的或不合格的圖標(biāo)庫可以從圖標(biāo)庫中刪除
5、可以收藏別人的圖標(biāo)到自己 上傳圖標(biāo) 列表中,然后保存成為自己的圖標(biāo)
前端使用方式
圖標(biāo)管理平臺提供了三種圖標(biāo)使用方式, font class、svg files、svg sprite三種方式,可導(dǎo)出的資源類型包括css資源文件鏈接, css資源文件內(nèi)容,svg文件內(nèi)容,svg sprite 文件內(nèi)容,各個工程可以根據(jù)自己的使用方式使用腳本導(dǎo)出合適的資源類型。
可以使用配套的工具nicon-toolkit來從平臺上獲取資源,簡單方便、配置靈活。
1、font-class引用
配置腳本的資源配置type為cssUrl(外鏈)或者cssContent(內(nèi)聯(lián)),運行腳本獲取資源文件
挑選相應(yīng)圖標(biāo)并獲取字體編碼,應(yīng)用于頁面
2、svg文件使用
配置腳本的資源配置type為svg,運行腳本獲取svg文件到指定目錄
經(jīng)過二次處理或直接使用、比如base64或其他方式
3、svg sprite使用方式
配置腳本的資源配置type為svgSprite,運行腳本獲取svgSprite 內(nèi)聯(lián)到html文件中
挑選相應(yīng)圖標(biāo)并獲取類名,應(yīng)用于頁面
這樣使用的方式稍微麻煩,建議封裝成組件傳id就好,比如
Nicon平臺是一個前后端完全分離的項目,前后端都可以多帶帶啟動進(jìn)行開發(fā)聯(lián)調(diào)。前端采用Vue生態(tài)相關(guān)技術(shù),后端使用koa框架,結(jié)構(gòu)及流程都比較簡單。根據(jù)需求及自己開發(fā)習(xí)慣進(jìn)行架構(gòu)設(shè)計,有興趣的可以看看。Nicon 平臺全部的代碼都已經(jīng)開源,并且個人會長期維護(hù),有興趣的歡迎加入一起維護(hù)。
服務(wù)安裝部署系統(tǒng)要求
linux/unix/windows
環(huán)境要求
nodejs 7.0+
npm 3.10.8+
mogondb 3.2+
redis 3.2+
在啟動工程之前,必須確保數(shù)據(jù)庫已經(jīng)啟動,且已經(jīng)把相應(yīng)的數(shù)據(jù)庫創(chuàng)建好。
1、 克隆項目到本地|服務(wù)器
git clone git@github.com:bolin-L/nicon.git
2、 進(jìn)入到項目工程nicon安裝依賴
cd nicon && npm install
3、配置數(shù)據(jù)庫信息與其他環(huán)境變量
在nicon同級文件夾(or 任何地方,但是如果放在nicon文件夾中,名稱必須為start.sh 或 start.bat, 會被ignore掉,更新不會被覆蓋)創(chuàng)建一個啟動腳本start.sh, 用于配置數(shù)據(jù)庫及其他的環(huán)境變量配置,可參考examle
4、進(jìn)入到nicon文件夾,執(zhí)行啟動腳本命令
sh yourStartConfigPath/start.sh
如果不出什么意外,這個時候應(yīng)該已經(jīng)啟動好了。服務(wù)監(jiān)聽的端口是4843, 當(dāng)然這只是個純服務(wù),具體的頁面還需要部署前端工程nicon-front。
前端靜態(tài)資源部署圖標(biāo)管理平臺采用的是前后端完全分離的開發(fā)方式,前端代碼放在獨立的icon-front。前端只需要提供完整的靜態(tài)html頁面與其他靜態(tài)資源即可。靜態(tài)資源的訪問通過配置nginx代理實現(xiàn)頁面的訪問,跟服務(wù)端工程毫無關(guān)系,服務(wù)端只負(fù)責(zé)提供異步接口。
1、克隆前端項目到本地, 與nicon文件夾同級
git clone git@github.com:bolin-L/nicon-front.git
2、進(jìn)入到nicon-front工程,安裝依賴
cd nicon-front && npm install
3、運行打包命令、打包輸出到nicon-front/dist文件夾下
npm run build
現(xiàn)在服務(wù)已經(jīng)啟動,靜態(tài)資源已經(jīng)輸出,接下來需要配置nginx讓請求可以訪問到靜態(tài)資源,異步接口可以訪問到服務(wù)。
Nginx配置為了在瀏覽器中訪問到頁面,需要配置Nginx代理,把對應(yīng)的請求轉(zhuǎn)發(fā)到對應(yīng)的服務(wù)。該平臺的請求分兩種,一種是訪問前端靜態(tài)頁面與資源,另一種是訪問后端服務(wù)的異步接口
,請求都有一定的規(guī)則,大概配置如下:
# 靜態(tài)資源請求 location / { root /home/liaobolin/app/nicon-front/dist; index index.html index.htm; } location ^~ /static { root /home/liaobolin/app/nicon-front/dist; } # 配置異步接口請求到服務(wù)器 location /api { proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; proxy_pass http://127.0.0.1:4843; }
配置到此,平臺基本就可以運行起來使用了,瀏覽器通過域名就可以訪問到首頁
三方服務(wù)接入雖然該平臺已經(jīng)可以提供完成的登錄、注冊,圖標(biāo)庫樣式文件等靜態(tài)資源的訪問。但是對于企業(yè)來說,內(nèi)部的工具平臺最好只接受內(nèi)部人或只能內(nèi)網(wǎng)訪問,對于靜態(tài)資源最理想的就是放到自家的cdn服務(wù)器上,讓平臺操作更安全,訪問所速度更快等等...
基于這樣的需求,Nicon支持接入三方登錄與字體文件資源上傳到三方服務(wù)器,登錄或上傳需要的密鑰等需要通過環(huán)境變量設(shè)置,比如放在start.sh文件中,登錄、上傳等接入代碼需要自己按照規(guī)范開發(fā)完成提PR,檢查完畢后合并到工程master分支中。目前代碼中支持一下三方服務(wù):
三方登錄
網(wǎng)易o(hù)penId登錄
github授權(quán)登錄
三方上傳
網(wǎng)易NOS服務(wù)
七牛云存儲服務(wù)
三方服務(wù)接入文件夾結(jié)構(gòu)如下
├── service │?? ├── login │?? │?? ├── github_qiniu │?? │?? │?? ├── config.js │?? │?? │?? └── index.js | | |-- ....... │?? │?? ├── index.js │?? └── upload │?? ├── github_qiniu │?? │?? ├── config.js │?? │?? └── index.js | | |-- ....... │?? ├── index.js
三方登錄、上傳服務(wù)接入步驟
1、在接入三方服務(wù)之前,必須先配置產(chǎn)品類型環(huán)境變量 productType。加入到start.sh文件中
export productType="github_qiniu";
比如我需要接入github三方登錄與qiniu上傳存儲服務(wù),那么我的productType就設(shè)置為github_qiniu。 那么在開發(fā)接入服務(wù)時文件夾名稱必須為 github_qiniu。
2、 在service/login/ 文件夾下創(chuàng)建文件夾 github_qiniu, 然后在該文件夾下創(chuàng)建config.js , 與index.js, 在index.js文件中必須暴露出async login方法, 調(diào)用方法后需要返回指定格式的數(shù)據(jù)
// index.js class GithubOpenIdLogin { async login (ctx) { // your code return { userName: tokenInfo.userName // 必須且唯一 } } } let loginIns = new GithubOpenIdLogin(); module.exports = loginIns.login.bind(loginIns);
3、在service/upload/ 文件夾下創(chuàng)建文件夾 github_qiniu, 然后在該文件夾下創(chuàng)建config.js , 與index.js, 在index.js文件中必須暴露出async upload方法, 調(diào)用方法后需要返回指定格式的數(shù)據(jù)
// index.js class QiniuUpload { async upload (dirPath) { // your code // 上傳返回數(shù)據(jù)格式 return { url: cssUrl, // 必須 cssContent: cssContent // 必須 }; } } let uploadIns = new QiniuUpload(); module.exports = uploadIns.upload.bind(uploadIns);
至此就已經(jīng)配置完畢,啟動工程就好了。Nicon平臺的詳細(xì)部署流程已經(jīng)寫在nicon工程中,如果需要請前往了解更詳細(xì)的部署流程。
后記Nicon平臺是我自己在業(yè)余時間做的項目,能力有限,UI方面基本是參考iconfont,技術(shù)方面也是慢慢摸索,實屬不易,在使用過程中有任何建議或意見,歡迎指教。歡迎大家來一波star,github地址如下:
nicon 平臺nodejs后端服務(wù)
nicon-front 平臺前端工程
在開發(fā)過程中,我仿照NEJ的cache使用方式基于axios封裝了axios-cache 模塊,在axios的基礎(chǔ)上進(jìn)行一些增強(qiáng),更適合日常的組織與使用方式,有興趣的話可以試試,當(dāng)然,也歡迎star。
axios-cache 集中管理異步接口配置的模塊
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/115820.html
摘要:靜態(tài)資源的訪問通過配置代理實現(xiàn)頁面的訪問,跟服務(wù)端工程毫無關(guān)系,服務(wù)端只負(fù)責(zé)提供異步接口。集中管理異步接口配置的模塊 Nicon 一言不合,先上平臺Nicon。該平臺接入github登錄,采用七牛CDN存儲,歡迎大家試用。 Nicon 是一個集圖標(biāo)上傳、展示、使用于一身的字體圖標(biāo)管理平臺,流程簡單,符合日常開發(fā)使用習(xí)慣,適合企業(yè)在內(nèi)部部署使用。采用 Iconfont 字體圖標(biāo)替換項目中...
摘要:企業(yè)微信截圖企業(yè)微信截圖兼容最廣的一站式智能大數(shù)據(jù)平臺涵蓋了等眾多開源大數(shù)據(jù)組件,支持對這些組件進(jìn)行運維中臺建設(shè)數(shù)據(jù)開發(fā)業(yè)務(wù)可視化等全棧式大數(shù)據(jù)開發(fā)運維管理。通過一站式智能大數(shù)據(jù)平臺支持的等分布式運算框架,可以高效的進(jìn)行機(jī)器學(xué)習(xí)應(yīng)用開發(fā)。背景在大數(shù)據(jù)業(yè)務(wù)系統(tǒng)中,所有技術(shù)棧生態(tài)均是圍繞著存儲進(jìn)行擴(kuò)展的,目前開源的主流存儲技術(shù)棧主要包含如下 3 種類型:· HDFS:Hadoop 系列套件,包含...
摘要:機(jī)器學(xué)習(xí)機(jī)器學(xué)習(xí)通過算法對大量數(shù)據(jù)進(jìn)行分析,挖掘出其中蘊含的規(guī)律,并用于事物預(yù)測或者分類,有大量的計算需求。通過一站式智能大數(shù)據(jù)平臺支持的等分布式運算框架,可以高效的進(jìn)行機(jī)器學(xué)習(xí)應(yīng)用開發(fā)。在大數(shù)據(jù)業(yè)務(wù)系統(tǒng)中,所有技術(shù)棧生態(tài)均是圍繞著存儲進(jìn)行擴(kuò)展的,目前開源的主流存儲技術(shù)棧主要包含如下 3 種類型:· HDFS:Hadoop 系列套件,包含 Hive、Hbase、Phoenix 等;· Ela...
摘要:的特點通過狀態(tài)碼能知道操作結(jié)果,通過方法能知道操作類型增刪改查,通過能知道操作的資源對象。平臺只通過狀態(tài)碼來判斷操作成功與否。 前言 今年,我的任務(wù)是為公司的私有云平臺( PaaS )開發(fā)對應(yīng)的云服務(wù)平臺(我們稱之為插件平臺),這個云服務(wù)平臺的主要任務(wù),是為云平臺接入一些服務(wù),服務(wù)包括但不限于mysql、redis、cdn等存儲服務(wù),天氣預(yù)報等http服務(wù)。這個系列文章,希望總結(jié)本人在...
閱讀 1000·2021-11-22 13:52
閱讀 1440·2021-11-19 09:40
閱讀 3120·2021-11-16 11:44
閱讀 1262·2021-11-15 11:39
閱讀 3892·2021-10-08 10:04
閱讀 5332·2021-09-22 14:57
閱讀 3095·2021-09-10 10:50
閱讀 3176·2021-08-17 10:13