自定义vue插件&发布到npm

1.类似构件components,进行插件编写,注意的是插件必须定义name


2.然后在插件文件夹中定义index.js用于统一注册插件

//index.js
const requireComponent = require.context('./',true,/\.vue$/)

//插件
const install = (vue)=>{
    if(install.installed) return
    install.installed
    requireComponent.keys().forEach(fileName=>{
    //第i个组件
    const config = requireComponent(fileName)
    //组件名
    const componentName = config.default.name
    Vue.component(componentName,config.default||config)
    
    });
    Vue.directive('focus',{
        inserted:function(el){
            el.focus()
        }
    })
}

//环境监测
if(typeof window !== 'undefined' && window.Vue){
    install(window.Vue)      
}

export default{
    install
}

配置项目的package.json文件

"name": "vue-msg-xxx", //不能带数字,否则会发布npm失败
"version": "0.0.1",
"private": false,
"license": "MIT",
"description": "描述",
"":""
……
"script":{
    ……
    "lib": "vue-cli-service build --target lib --name vue-msg-xxx --dest lib src/plugins/index.js"
}

配置好后:npm run lib,生成lib文件夹,其中有个min.js文件,需要在package.json中配置main发布npm包的入口文件

……
"description": "xxx",
"main": "lib/vue-msg-xxx.umd.min.js",
……

然后登陆npm: npm login

再通过:npm publish发布到npm

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值