問題描述
需求描述
本文記錄了使用vue-sfc-rollup工具,去將我們封裝的vue元件,發到npm上,以便於元件共享。
就npm發包而言,工具有很多,不過vue-sfc-rollup是一個輕量級的工具,能夠快速完成發包需求
vue-sfc-rollup介紹
官話介紹:
vue-sfc-rollup is a CLI templating utility that scaffolds a minimal setup for compiling a Vue Single File Component (SFC) - or library of multiple SFCs - into a form ready to share via npm. It doesn't assume any particular flavor of CSS or docs generator, so you can use what you're already used to. It's the fastest way to produce npm-ready vue components!
通俗解釋說明:
vue-sfc-rollup是一個腳手架模板工具,在vue語法中生產,製作,釋出npm包,是最快的方法
- NPM包地址:https://www.npmjs.com/package/vue-sfc-rollup
- GitHub地址:https://github.com/team-innovation/vue-sfc-rollup
步驟記錄
第一步,準備好要釋出的元件
假設我有一個元件,名字叫做myStar
,就是一個盒子中放置三顆星星,長相如下圖:
程式碼如下:
<template>
<div class="myStarWrap">
<span class="starItem">✡️</span>
<span class="starItem">⭐</span>
<span class="starItem">?</span>
</div>
</template>
<script>
export default { name: "myStar" };
</script>
<style scoped>
.myStarWrap {
box-sizing: border-box;
display: flex;
justify-content: space-between;
width: 150px;
height: auto;
padding: 4px;
padding-bottom: 8px;
background-color: #e9e9e9;
border: 1px solid #666666;
}
/* 懸浮放大 */
.myStarWrap .starItem {
font-size: 32px;
cursor: zoom-in;
transition: all 0.36s;
}
.myStarWrap .starItem:hover {
transform: scale(1.2);
}
</style>
我現在準備把這個程式碼發到npm上面,使用vue-sfc-rollup
工具
第二步,全域性安裝vue-sfc-rollup
並初始化專案
比如,我在桌面新建一個叫做npm的資料夾,在此資料夾中進行操作
然後雙擊開啟資料夾,進行cmd命令列操作
在位址列輸入命令操作:
// 先全域性安裝
npm install -g vue-sfc-rollup
// 安裝好了以後,就可以初始化專案了
sfc-init
具體操作,請仔細看下圖
一波操作下來,工程資料夾就有東西了,然後使用vscode開啟,注意目錄層級結構,請仔細看下圖
第三步,將我們提前準備好的真正元件程式碼做替換即可
我們只需要替換上圖中的my-star.vue檔案即可
當然,這裡大家可以安裝依賴包,並執行npm run serve跑起來,看看架子給到的預設my-star檔案內容啥樣子的。這裡筆者也截個圖,如下
替換程式碼,並執行npm run build打包
第四步,注意package.json的包名
注意,要小寫,不能駝峰
注意,這裡改成 "name": "mystar"
即可
即釋出前檢查一下,也可以添點東西,自己看情況為之
第五步,登入npm,併發布包
注意,這裡的登入npm,不是登入cnpm,所以如果大家使用的是cnpm要切回npm再去登入
npm config set registry https://registry.npmjs.org/
發的包,注意不要和npm上已經有的包重名了,要不然提交不上去的
就像git要登入以後提交程式碼,npm也要登入以後才能發包,大家一定要提前註冊好npm的賬號,並用自己的賬號登入釋出publish,如下圖
npm login登入
npm publish發包
第六步,在npm上看到自己剛剛釋出的包
注意,淘寶映象10分鐘同步一次,稍微等待一下即可
第七步,切回cnpm,並透過npm下載剛剛釋出的包
切回cnpm淘寶映象
npm config set registry http://registry.npm.taobao.org/
包安裝好了以後,在node_modules檔案中能看到哦
第八步,使用自己的npm包
使用程式碼
使用效果圖