天天看點

12 - Vue3 UI Framework - 打包釋出

基礎元件庫先做到這個階段,後面我會繼續新增、完善 接下來,我們對之前做的元件進行打包釋出到 <code>npm</code> 傳回閱讀清單點選 這裡

我想大家都注意到了,前面我們在寫元件的時候,<code>scss</code> 中類的命名都是 <code>jeremy-x</code> 這樣的形式,這是為了用選擇器來做到統一配置。

我們在 <code>src/lib</code> 目錄下,建立一個 <code>jeremy.scss</code> 的檔案,編寫如下代碼:

注意 字首改成您的項目辨別就可以了,我這裡是 <code>jeremy</code>

我們需要告訴打包器,那些内容是需要暴露的,是以這裡我們再在 <code>src/lib</code> 目錄下建立一個 <code>index.ts</code> 檔案,然後将需要打包的元件進行彙總導入和導出。

這裡的 <code>install</code> 方法是讓使用者能夠完整引入元件的必要方法 這裡的 <code>export</code> 是用于按需引入的,另外,要想實作使用者能夠部分引入元件,還必須在每個子元件中定義 <code>install</code> 方法

既然要釋出到 <code>npm</code> ,那麼首先我們要有一個 <code>npm</code> 賬戶,如果沒有可以點選 官網 進行注冊。

一定要記好,使用者名、密碼和郵箱! 注冊完成後,一定要完成郵箱認證!

郵箱認證後,登入顯示如下,這裡的 <code>2FA</code> 暫時可以忽略,不過後面盡量完成認證。

12 - Vue3 UI Framework - 打包釋出

首先,要清楚我們的項目是基于 <code>Vite</code> 的,也就是說,是一個由原生 <code>ESM</code> 驅動的 <code>Web</code> 開發建構工具建構的。在選擇建構工具的時候也最好可以選擇基于 <code>ESM</code> 的工具。

是以,我們選擇 <code>Rollup</code> 進行打包,是因為 <code>Rollup</code> 是基于 <code>ES2015</code> 的 <code>JavaScript</code> 打包工具。它将小檔案打包成一個大檔案或者更複雜的庫和應用,打包既可用于浏覽器和 <code>Node.js</code> 使用。 <code>Rollup</code> 最顯著的地方就是能讓打封包件體積很小。相比其他 <code>JavaScript</code> 打包工具,<code>Rollup</code> 總能打出更小,更快的包。因為 <code>Rollup</code> 基于 <code>ES2015</code> 子產品,比 <code>Webpack</code> 和 <code>Browserify</code> 使用的 <code>CommonJS</code> 子產品機制更高效。

我們在項目的根目錄下建立 <code>rollup.config.js</code> 檔案,代碼如下:

通過配置我們指導 <code>rollup</code> 依賴如下 5 個包

sass

rollup-plugin-esbuild

rollup-plugin-vue

rollup-plugin-scss

rollup-plugin-terser

我們通過 <code>npm</code> 進行安裝,在項目根目錄下執行 <code>bash</code> ,并運作如下指令:

-D 辨別安裝為開發依賴,不能省略

在項目根目錄下執行 <code>bash</code> ,并運作如下指令:

執行後,我們會在根目錄下的 <code>lib</code> 檔案夾下看到如下三個檔案:

開始之前,我們需要在 <code>package.json</code> 中添加一些内容,使用者配置元件庫的位置和預設檔案,代碼如下:

釋出到 <code>npm</code> 時,釋出的項目名取決于配置中的 <code>name</code> 字段,釋出的版本号取決于該配置中的 <code>version</code> 字段 每次釋出時,釋出的新版本号不得低于該項目以前釋出過的任意版本号

然後,在項目根目錄下運作 <code>bash</code> 并執行如下指令:

然後登入(輸入使用者名、密碼和郵箱),登入成功後,再執行如下指令:

如果包名已經被别人釋出過,那麼這一步會失敗,修改的包名重新打包、釋出吧 如果釋出錯了,可以删除這個包,但是要求是 72 小時内,這裡就不再展開了

釋出成功後,我們可以登入 <code>npm</code> 檢視一下:

12 - Vue3 UI Framework - 打包釋出

我們将項目切換到 <code>website</code> 分支,可以看到這個分支的元件都是通過 <code>npm</code> 進行安裝的,不再是通過本地安裝的了。當然,您也可以通過 <code>bash</code> 執行如下指令進行安裝:

GitHub: https://github.com/JeremyWu917/jeremy-ui

JeremyUI: https://ui.jeremywu.top

感謝閱讀 ☕

繼續閱讀