譯者按: 你可能npm人家的包過成千上萬次,但你是否有建立,發佈和使用過本身的npm包?javascript
爲了保證可讀性,本文采用意譯而非直譯。另外,本文版權歸原做者全部,翻譯僅用於學習。css
儘管我已經在工做上用了Vue.js一段時間,但我從不須要在npm上發佈組件。但最近發如今不一樣的項目重寫組件是件很是蛋疼的事,因此當我第三次使用Vue.js開發項目時,我以爲咱們是時候須要一些高度可配置而且可重用的組件了。vue
首先,你須要安裝vue-cli才能開始。java
|
咱們正在使用vue-cli 3.0 beta版本。 你可能會Github的
README.md
看到一條警告:「除非您有冒險精神,不然不要在生產中使用」,很顯然我頗有冒險精神,哈哈。程序員
你如今的控制面應該看起來以下圖:vue-cli
如今你只需開始作如下事情:npm
|
如今開始建立一個簡單的組件,來看一個Banner
組件的例子。json
<template> |
將組件註冊爲名爲Banner的
組件後,能夠在模板中簡單使用該組件:frontend
<Banner>Fundebug:最專業的應用錯誤監控平臺!</Banner> |
你能夠在CodeSandbox查看這個組件的demo學習
Fundebug錯誤實時監控爲您的Vue項目保駕護航!
如今,若是你想經過npm使用這個組件,你必須作一些事情。
你須要利用vue-cli
將你的組件構建爲庫。 將vue-cli-service build --target lib --name myLib [entry]
添加到你的package.json腳本中。
默認狀況下,[entry]是你的App.vue,但你能夠將其更改成你導入這些組件的任何文件的相對路徑。 你可能會也可能不會選擇全局註冊這些組件,但若是我是你,我會將它們與個人庫名稱一塊兒註冊爲前綴。 程序員用組件的時候,代碼越少越好。
我已經爲個人腳本添加了build-bundle
,以便我能夠運行npm run build-bundle
來建立個人庫包。
這會產生相似於如下的輸出:
對於CodeSandbox示例,輸入文件應該以下所示:
爲了確保package.json
中的main
屬性正確指向輸出文件。 我更喜歡使用commonjs
包。
確保你在npm上註冊。 npm adduser
註冊一個新用戶和npm login
做爲一個現有用戶登陸。
輸入npm whoami
來驗證你的用戶名。
爲你的包選擇一個名字,你必須確保它還沒有被使用。 確保把它放在你的package.json中。
經過執行在第1步中添加的程序包腳原本構建捆綁軟件。
|
運行npm publish
–access public
來發布該庫供公衆訪問。
就是這樣。 你完成了在npm上發佈你的Vue組件庫!
從npm安裝組件庫並將組件導入代碼中。 安裝:
|
其中[你的庫名]是你在第5步中給出的庫的名稱。
在你的main.js
或相似的入口點,只需使用如下命令導入你的庫:
|
如今,你能夠開始使用你的組件了,由於咱們在第一步中全局註冊了這些組件。
對於咱們的示例組件Banner
,當咱們註冊組件時,組件名稱爲FlockBanner。 因此,你能夠直接在你的模板中使用它:
|
使用上面提到的組件庫查看實例:https://codesandbox.io/s/n9n7yy2lwp
整個過程咱們就完成了。 在Vue.js團隊提出CLI版本3後,構建本身的組件庫以便重用變得很是容易。 若是以爲這個流程有點幫助,點個讚唄,同時也支持下Fundebug哦!