事情的開(kāi)始是這樣的
應(yīng)業(yè)務(wù)需求做一個(gè)可以放在angular的表單里使用的富文本編輯器异雁。為了方便同步給其他項(xiàng)目組捶障,故而決定傳個(gè)npm包。這也是我的首個(gè)有使用價(jià)值的開(kāi)源項(xiàng)目片迅。
開(kāi)搞
選了個(gè)star多残邀,不需其他依賴的開(kāi)源項(xiàng)目進(jìn)行二次封裝。感謝原作者柑蛇。
https://github.com/wangfupeng1988/wangEditor
AngularCLI v6集成了ng-packagr芥挣,提供了整套制作第三方組件的方案。
現(xiàn)學(xué)現(xiàn)賣(mài)耻台,參考這個(gè)文章:
https://blog.angularindepth.com/creating-a-library-in-angular-6-87799552e7e5
angularindepth真是個(gè)好平臺(tái)!
遇到的問(wèn)題:
頭個(gè)問(wèn)題就是純傻空免,依賴的wangeditor沒(méi)能自動(dòng)install。我以為在angular項(xiàng)目里添加依賴包就可以了盆耽,實(shí)則不然蹋砚,應(yīng)該在project里進(jìn)行安裝(記得設(shè)置.gitignore)扼菠。
試圖配置到peerDependencies里面,依然沒(méi)能自動(dòng)install坝咐,查資料應(yīng)該是npm2與npm3對(duì)peerDependencies的實(shí)現(xiàn)是有差異的循榆,描述如下:
http://link.zhihu.com/?target=https%3A//github.com/npm/npm/issues/6565
這里給的方案是按提示手動(dòng)npm install,然而灑家并不能認(rèn)同這種結(jié)果墨坚。
遇事不決問(wèn)大哥:
https://www.zhihu.com/people/sangka/activities還是要放在dependencies里秧饮。又報(bào)錯(cuò),什么什么wangeditor不在白名單......
https://stackoverflow泽篮。com/questions/51216616/what-is-the-proper-way-to-use-a-dependent-npm-package-in-angular-6-library-proje
?
ng-package.json里配置whitelistedNonPeerDependencies盗尸,好用了。
剩下的一個(gè)問(wèn)題就是如何布置針對(duì)組件庫(kù)的css帽撑,首先我不想每個(gè)組件都手動(dòng)引入泼各,其次不希望暴漏給整個(gè)項(xiàng)目,以免沖突亏拉,待后續(xù)調(diào)查~
ps:我原本打算在組件里處理回壓扣蜻,幾經(jīng)思考覺(jué)得這種事還是放在業(yè)務(wù)里比較合適