版權聲明:本文爲博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接和本聲明。
本文連接:gudepeng.github.io/note/2020/0…html
廢話很少說,直接進入正題。在開發vue的時候咱們常常會開發本身的插件以供你們使用,下面就具體介紹下怎麼開發插件。vue
npm install -g @vue/cli
複製代碼
vue create hello-world
複製代碼
@vue/cli 4 建立項目node
//讀取packages目錄下的文件
const modulesFiles = require.context('../packages', true, /\.js$/)
// 定義 install 方法
const install = function(Vue) {
if (install.installed) return
install.installed = true
//遍歷modulesFiles,並註冊到vue實例中,名是組件內default.name
modulesFiles.keys().reduce((modules, modulePath) => {
const value = modulesFiles(modulePath)
Vue.component(value.default.name, value.default || value)
})
}
if (typeof window !== 'undefined' && window.Vue) {
install(window.Vue)
}
export default { install }
複製代碼
這樣就會自動註冊packages下全部的組件webpack
vue add i18n
複製代碼
在src下建立locales目錄,建立cn.js和en.jsgit
const cn = {
//國際化的屬性值
}
export default cn
複製代碼
編輯package.jsongithub
{
//組件名
"name": "hades-ui",
//版本
"version": "0.1.0",
"private": false,
"scripts": {
//打包命令
"lib": "vue-cli-service build --target lib --name hades-ui --dest lib src/index.js && node ./build/i18n.js"
},
//主程序路徑
"main": "liib/hades-ui.umd.min.js",
"descriptiion": "this is a vue ui",
"license": "MIT"
}
複製代碼
編輯國際化打包程序,在build目錄下建立i18n.js,拷貝2個語言包到lib下web
const fs = require('fs')
fs.mkdirSync('./lib/locales')
fs.copyFileSync('./src/locales/cn.js', './lib/locales/cn.js')
fs.copyFileSync('./src/locales/en.js', './lib/locales/en.js')
複製代碼
建立.npmignore文件vue-cli
.DS_Store
node_modules/
examples/
packages/
public/
src/
vue.config.js
babel.config.js
*.map
*.html
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw*
複製代碼
npm login
複製代碼
npm publiish
複製代碼
npm install hades-ui
複製代碼
在項目中對應的語言包內插入npm
import enLocale 'hades-ui/locales/en.js'
const en ={
...enLocale
}
export default en
複製代碼
demo項目json