• 将自己写的组件封装成类似element-ui一样的库,可以cdn引入


    在写好自己的组件之后

    第一步 修改目录结构

      在根目录下创建package文件夹,用于存放你要封装的组件

    第二部

      在webpack配置中加入

      pages与publicpath同级

      pages: {

        index: {
          entry: 'src/main.js',
          template: 'public/index.html',
          filename: 'index.html'
        }
      },
     
    第三部 编写组件
      在package文件夹下
      新建一个你的组件名的文件夹 
      里面存放一个你的组件的.vue文件
      再新建一个js文件  用于将你的组件暴露出来
      
        import Grid from './grid.vue'
        // 为组件提供 install 安装方法,供按需引入
        Grid.install = function (Vue) {
          Vue.component(Grid.name, Grid)
        }
        // 默认导出组件
        export default Grid;
     
    第四步  在package文件夹下新建一个js 文件(我命名index.js)
      
      import Toolbar from './toolbar/index';
      // 存储组件列表
      const components = [
        Toolbar
      ]
      // 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册
      const install = function (Vue) {
        // 判断是否安装
        if (install.installed) return
        // 遍历注册全局组件
        components.map(component => Vue.component(component.name, component))
      }
      // 判断是否是直接引入文件
      if (typeof window !== 'undefined' && window.Vue) {
        install(window.Vue)
      }
      export default {
        // 导出的对象必须具有 install,才能被 Vue.use() 方法安装
        install,
        // 以下是具体的组件列表
        Toolbar,
      }
     
    最后一步
      package.json文件中添加命令
     
      "scripts": {
        "serve": "vue-cli-service serve",
        "build": "vue-cli-service build",
        "lint": "vue-cli-service lint",
        "lib": "vue-cli-service build --target lib --name my --dest lib packages/index.js"
      },
     
    最后运行  npm run lib  就发现多了一个lib文件夹  里面就存放的你打包好的js以及css
     
     
     
     
     
     
  • 相关阅读:
    终于有人把 Docker 讲清楚了,万字详解!
    Java 14 可能带来什么新特性?
    我 45 岁还写代码,怎么了?
    傻傻分不清?Integer、new Integer() 和 int 的面试题
    showModalDialog打开页面有缓存,不走action
    ajax,下拉框级联
    jsp中<!DOCTYPE>标签
    struts配置文件中如何从一个package的action跳到另一个package中的某个action
    jsp通过s:hidden传值给后台,后台数据出现了若干逗号问题
    struts2.0整合json
  • 原文地址:https://www.cnblogs.com/Mr-Rshare/p/11022915.html
Copyright © 2020-2023  润新知