最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 使用vue-cli3进行开发插件

    正文概述 掘金(大冬冬)   2021-01-07   397

    开发vue插件,上传到npm,造轮子,最后有npm注册,发包等步骤

    dd-plugin

    这是使用vue-cli3进行开发插件,创建项目就不用多说啦

    vue create xxxx
    

    初始化

    安装需要依赖包

    yarn install
    

    运行项目

    yarn serve
    

    一:调整项目结构

    首先需要创建一个 _packages 目录,用来存放组件 然后将 src 目录改为 examples 用作示例

    二:修改配置

    启动项目的时候,默认入口文件是 src/main.js

    src 目录改为 examples 之后,就需要重新配置入口文件

    在根目录下创建一个 vue.config.js 文件

    // vue.config.js
    
    module.exports = {
      // 将 examples 目录添加为新的页面
      pages: {
        index: {
          // page 的入口
          entry: 'examples/main.js',
          // 模板来源
          template: 'public/index.html',
          // 输出文件名
          filename: 'index.html'
        }
      }
    }
    

    完成这一步之后就可以正常启动项目了

    vue-cli 3.x 提供了构建库的命令,所以这里不需要再为 packages 目录配置 webpack

    三、开发组件

    之前已经创建了一个 packages 目录,用来存放组件

    该目录下存放每个组件单独的开发目录,和一个 index.js 整合所有组件,并对外导出

    每个组件都应该归类于单独的目录下,包含其组件源码目录 src,和 index.js 便于外部引用

    popup/src/main.vue 是组件的开发文件,具体代码这里就不展示了

    需要注意的是,组件必须声明 name,这个 name 就是组件的标签

    popup/index.js 用于导出单个组件,如果要做按需引入,也需要在这里配置

    // packages/popup/index.js
    
    // 导入组件,组件必须声明 name
    import Textarea from './src/main.vue'
    
    // 为组件添加 install 方法,用于按需引入
    Textarea.install = function (Vue) {
        Vue.component(Textarea.name, Textarea)
    }
    
    export default Textarea
    

    四、整合并导出组件

    编辑 packages/index.js 文件,实现组件的全局注册

    // packages / index.js
    
    // 导入单个组件
    import popup from './popup/index'
    
    // 以数组的结构保存组件,便于遍历
    const components = [
        popup
    ]
    
    // 定义 install 方法
    const install = function (Vue) {
        if (install.installed) return
        install.installed = true
        // 遍历并注册全局组件
        components.map(component => {
            Vue.component(component.name, component)
        })
    }
    
    if (typeof window !== 'undefined' && window.Vue) {
        install(window.Vue)
    }
    
    export default {
        // 导出的对象必须具备一个 install 方法
        install,
        // 组件列表
        ...components
    }
    

    到这里组件就已经开发完毕

    可以在 examples/main.js 中引入该组件

    //引入
    import ddPopup from '../packages/index'
    Vue.use(ddPopup)
    

    然后就能直接使用刚才开发的 textarea 组件

    //使用
    <dd-popup  v-if="flag" @ok="ok" @cancel="cancel"/>
    

    参数

    参数说明类型默认值
    title内容String''

    事件events

    事件名称说明回调方法
    ok确认按钮functioncancel取消按钮function

    这时候可以 yarn serve 启动项目,测试一下组件是否有 bug

    // 启动前需要确保已经在 vue.config.js 中添加了新入口 examples/main.js

    dd-popup 组件效果

    使用vue-cli3进行开发插件

    五、打包组件

    vue-cli 3.x 提供了一个库文件打包命令

    主要需要四个参数:

    1. target: 默认为构建应用,改为 lib 即可启用构建库模式

    2. name: 输出文件名

    3. dest: 输出目录,默认为 dist,这里我们改为 lib

    4. entry: 入口文件路径,默认为 src/App.vue,这里改为 packages/index.js

    基于此,在 package.json 里的 scripts 添加一个 lib 命令

    // pageage.json
    
    {
      "scripts": {
       "lib": "vue-cli-service build --target lib --name dd-popup-plugin --dest lib packages/index.js"
      }
    }
    

    然后执行 npm run lib 命令,编译组件

    打包后 目录结构文件 使用vue-cli3进行开发插件

    没有npm账号怎么办?别急,教你

    注册npm

    首先去npm注册一个用户 核心操作就这么几步骤,一做就会 然后在本地添加用户:

    npm adduser
    username:
    password:
    email:
    

    注册完后,npm官网的小姐姐会让你验证邮箱,验证完成后,需要退出登录重新登录 查看当前环境下的用户:

    npm whoami
    

    使用vue-cli3进行开发插件

    登录:

    npm login
    

    发布:

    npm publish
    

    本人发布时候重新新建文件夹,这个文件只负责构建组件,另外一个负责上传npm组件

    一:初始化package.json

    npm init -y
    

    使用vue-cli3进行开发插件

    二:首先需要在 package.json 添加组件信息

    name: 包名,该名不能和已有的名称冲突;

    version: 版本号,不能和历史版本号相同;

    description: 简介;

    main: 入口文件,应指向编译后的包文件;

    keyword:关键字,以空格分割;

    author:作者;

    private:是否私有,需要修改为 false 才能发布到 npm;

    license:开源协议。

    使用vue-cli3进行开发插件

    在发布之前,一定要确保组件已经编译完毕,而且 package.json 中的入口文件(main)的路径正确

    一切就绪,发布组件:

    npm publish
    

    emmmmmm....

    最后查看npm

    看看是否 推送上去

    贡献两位大佬网站 呲呲呲 嘤嘤嘤

    使用vue-cli3进行开发插件

    安装使用

      

     安装:

    npm install  dd-popup --save
    或者
    yarn add dd-popup
    

     使用:

      main.js 全局引入

    使用vue-cli3进行开发插件


    起源地下载网 » 使用vue-cli3进行开发插件

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元