在上個月面試的過程當中,好幾家公司都問到是否有開源項目,在通往高級資深的路上,彷佛已經成了不可缺乏的一項;這篇文章會詳細介紹整個全流程;大佬們操做起來吧~html
1.建立項目前端
vue init mxdm-ui
複製代碼
2.調整目錄vue
...
|-- test // 原src目錄,改爲test用做展現
|-- packages // 新增 packages 用於編寫存放組件
...
複製代碼
3.調整配置 新增vue.config.jswebpack
module.exports = {
pages:{
index:{
entry:"test/main.js",
// 模板來源
template: 'public/index.html',
// 在 dist/index.html 的輸出
filename: 'index.html',
}
},
// 擴展 webpack 配置,使 packages 加入編譯
chainWebpack: config => {
config.module
.rule('js')
.include
.add('/packages')
.end()
.use('babel')
.loader('babel-loader')
.tap(options => {
// 修改它的選項...
return options
})
}
}
複製代碼
1.建立一個最基本的button組件git
...
|-- packages
--------button
--------------src
-------------------button.vue
--------------index.js
--------index.js
複製代碼
packages文件下的index.js爲全部組件的出口github
import Button from './button'
const components = [
Button
]
// 定義 install 方法,接收 Vue 做爲參數。若是使用 use 註冊插件,則全部的組件都將被註冊
const install = function (Vue) {
// 遍歷註冊全局組件
components.forEach(component => {
Vue.component(component.name, component)
})
}
// 判斷是不是直接引入文件
if (typeof window !== 'undefined' && window.Vue) {
install(window.Vue)
}
export default {
// 導出的對象必須具備 install,才能被 Vue.use() 方法安裝
install,
Button
}
複製代碼
button下的index.js爲button組件出口web
import ElButton from './src/button.vue';
ElButton.install = function(Vue){
Vue.component(ElButton.name, ElButton);
}
export default ElButton;
複製代碼
在這裏button/src/button.vue就不具體展現了面試
1.main.js導入組件庫vue-cli
// 導入組件庫
import mxdmUI from '../packages'
Vue.use(mxdmUI)
複製代碼
2.使用npm
<mx-button size="small">默認按鈕</mx-button>
<mx-button type="primary" >主要按鈕</mx-button>
<mx-button type="warning" size="small">主要按鈕</mx-button>
複製代碼
"scripts":{
"lib": "vue-cli-service build --target lib --name mxdm-ui packages/index.js"
}
複製代碼
npm run lib
複製代碼
生成dist文件
{
"name": "mxdm-ui", //包名
"version": "0.1.5",//版本號
"description": "mxdm-ui組件庫",//描述
"main": "dist/mxdm-ui.umd.min.js",// 入口文件,打包後的壓縮文件
"keyword":"mxdm-ui",//關鍵詞
"private": false, //是否私有 必須爲false
}
複製代碼
保證鏡像切回npm
npm config set registry http://registry.npmjs.org
複製代碼
執行npm login命令,系統會提示輸入帳戶和密碼。若是沒有npm帳戶,請註冊。
npm login
複製代碼
登陸成功後,就能夠再次執行 npm publish 進行發佈
發佈以前能夠配置.npmignore 文件
# 忽略目錄
examples/
packages/
public/
# 忽略指定文件
vue.config.js
babel.config.js
*.map
複製代碼
執行發佈命令
npm publish
複製代碼
npm install mxdm-ui
複製代碼
在 main.js 引入並註冊
import mxdm-ui from 'mxdm-ui'
vue.use(mxdm-ui)
複製代碼
github地址:github.com/minxiang515…