vue组件库的开发流程

2023-11-17

欢迎点击领取 -《前端面试题进阶指南》:前端登顶之巅-最全面的前端知识点梳理总结

开发流程
1.创建项目,(vue-cli/公司现有架构)
2.调整项目静态目录结构
3.使用webpack相关库模式打包编译
4.使用npm或者公司源地址发布到你需要的平台
步骤
  1. 创建项目,省略;
  2. 调整项目静态目录结构

    在项目同级目录下创建lib文件夹 => assets / components / css / utils / index.js / UploadUi.vue (依据自己喜好而定)
    lib => 存放组件相关依赖
    src => main.js 我们本地调试组件入口
    src => App.vue 我们本地调试组件使用地

    ├─build
    │      build.js  // 用于执行构建
    │      webpack.base.conf.js   // 通用配置
    │      webpack.dev.conf.js   // 开发环境
    │      webpack.prod.conf.js //  用于生成library的代码 -- upload-ui.js
    │
    ├─dist
    │     upload-ui.js // library 文件
    │
    ├─lib    // example目录
    │   └─ assets // 静态文件
    │	└─ components  // 公共组件
    │	└─ css // 组件内部公共样式依赖
    │	└─ utils // 组件依赖公共方法
    │      index.js // 全量引入公共组件,并暴露出来,包含install方法可供vue引入使用该插件
    │      UploadUi.vue
    │
    ├─src
    │  │  App.vue  
    │  └─ main.js // 组件本地调试入口
    │
    ├─package.json  // 项目包依赖
    
开发
  1. 在lib文件下的UploadUi.vue文件开始开发

    <template>
    	<div class="upload-card-entry">我是upload-ui组件编写入口</div>
    </template>
    <script>
    	export default {
    		name: 'UploadUI' // 与组件注册名字必须保持一致
    	}
    </script>
    
  2. 在lib文件下的index.js文件进行注册组件或批量注册组件,暴露出去,

    // 存在组件间循环引用的场景,因此在外部统一注册
    import UploadUI from './UploadUI.vue';
    
    const install = (Vue) => {
      Vue.component(UploadUI.name, UploadUI)
    }
    
    export default {
      install,
      version: '1.0.0'
    }
    
  3. 在src下的main.js文件引入我们的组件,在src/App.vue中使用进行本地测试是否成功

    import Vue from 'vue'
    import App from './App.vue'
    import UploadUi from '../lib/index';
    
    Vue.use(UploadUi);
    
    new Vue({
      el: '#app',
      render: h => h(App)
    })
    
  4. 使用webpack相关库模式打包编译

    修改打包入口、package.json文件;涉及到打包输入输出,编译上传发布

    const webpackConfig = merge(baseWebpackConfig, {
      mode: 'production',
      module: {
        rules: cssLoader.styleLoaders({
          sourceMap: config.cssSourceMap
        })
      },
      devtool: false,
      
      entry: path.resolve(__dirname, '../lib/index.js'), // 打包入口文件地址
    
      output: {
        path: path.resolve(__dirname, '../dist'),
        filename: 'upload-ui.js',
        library: 'upload-ui', //模块名称
        libraryTarget: 'umd', //输出格式
        umdNamedDefine: true //是否把模块名作为AMD输出的命名空间
      },
    
      externals: { // Vue组件库只提供组件,Vue文件自身需要组件库使用者在项目中自行引入,库中无需打包。所以我们可以把Vue加到externals中。
        vue: 'vue'
      },
    
      plugins: [
        // 设置默认环境变量
        new webpack.DefinePlugin({
          'process.env': env_build
        }),
      ]
    })
    

    package.json 文件配置,只显示了部分重要的

    {
      "name": "vue-upload-ui",
      "version": "1.1.5", // 注意每次发布npm,版本号不能重复
      "description": "上传upload-ui层组件",
      "author": "",
      "private": false, // 是否私有,必须指定为false才能发布到npm
      "main": "./dist/upload-ui.js", // 编译后包的入口文件
      "scripts": {
        "dev": "webpack-dev-server --open 'Google Chrome' --inline --progress --config build/webpack.dev.conf.js",
        "build": "node build/build.js build"
      },
      "dependencies": { // 业务依赖
      },
      "files": [ // 发布需上传的文件
        "lib",
        "dist"
      ],
      "devDependencies": { // 开发依赖
      },
    }
    
  5. 发布到npm上

    # 设置要发布的源,我发布的是公司搭建的私库
    npm config set registry http://registry.npmjs.org
    # 登录
    npm login
    # 发布
    npm publish
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue组件库的开发流程 的相关文章

随机推荐

  • 建站系列(二)--- 域名、IP地址、URL、端口详解

    目录 相关系列文章 前言 一 IP地址 二 域名与IP地址 三 域名与URL 四 IP地址与端口号 相关系列文章 建站系列 一 网站基本常识 建站系列 二 域名 IP地址 URL 端口详解 建站系列 三 网络协议 建站系列 四 Web服务器
  • Altium Designer 9 学习笔记(二)制作完整的原理图并在此基础上导出PCB版图

    首先 先说下本次练习对象 简单的光敏小夜灯 1 制作原理图 按制图流程 1 1 新建工程及原理图 F N J B 一套连招创建PCB工程 然后右键为新建的工程添加原理图文件 完成后如下图所示 1 2 加载元器件并生成序号 1 2 1 加入电
  • excel转换pdf方法 (aspose.cells亲测有效)

    AsposeUtils java package com lmp test utils import com aspose cells License import com aspose cells PdfSaveOptions impor
  • 北航学长:DCIC 2021的算法方案讲解

    作者 阿水 北京航空航天大学 Datawhale成员 DCIC 作为每年具有重要影响力的政府赛事 除了高认可 高奖金 最重要的是开放了政府和企业的真实数据 具有研究和落地价值 但对于刚参加赛事的同学 还是有难度的 希望通过分享让更初学者也能
  • 网管员牢记10种较为常见服务器管理错误

    网络管理阶层的工作就是保证网络的正常工作 从而使得职工们的工作不被打断 可问题在于事物并非总是按照理想状况发展 事实上经常会出现平地起风波的状况 其间有许多原因 这里我们只讨论10种较为常见的网管错误 1 UPS 不间断电源 的使用问题 某
  • Python+Requests-2-接口自动化脚本实现(虫师-Django接口测试实例)

    编写脚本前分析项目架构 需求 python脚本实现 添加发布会信息 的接口测试 以邮件形式发送测试报告 1 新建一个case目录 存放测试用例 2 新建一个config目录 存放配置信息和读取配置信息 3 新建一个db fixture目录
  • vue项目打包部署到服务器

    目录 一 打包项目 二 修改Nginx的配置 三 部署 四 开放端口号 一 打包项目 1 在 vue config js 文件中找到并修改 主要是publicPath 与outputDir 两项配置 若项目中有baseUrl 替换为publ
  • 【嵌入式学习-C语言篇】 char & short & int 的使用

    嵌入式学习 C语言篇 char short int 的使用 三种数据类型常用场景 智能家居 网关协议中mac地址上报 网关 网关 Gateway 又称网间连接器 协议转换器 网关在传输层以上实现网络互连 是最复杂的网络互连设备 仅用于两个高
  • STM32 进阶教程 7 -  C与C++混合编程

    前言 在嵌入式开发过程中经常会用到第三个芯片 设备 这些第三方的芯片提供的DEMO程序或驱动程序有时候是C 如果先前的系统用C语言写的就会出现点问题 往往需先将C 的驱动程序自已手动改成C语言再用 本节给大家介给一下如何在KEL MDK环境
  • html cgi改变字体颜色,在CGI文件中导致错误的HTML变量

    我在从我的cgi文件中打印特定变量时出现问题 我收到这个变量 从我的网页中调用totalCost 然后尝试打印它 但没有任何反应 所有其他变量可以从网页成功接收 并通过我的cgi文件打印到另一个网页上 除了这一个 我检查过大小写敏感但是没有
  • jQuery 入门教程(14): 添加HTML元素

    使用jQuery可以方便的添加新的HTML元素 下面的方法用于添加HTML元素 append 在指定的元素的尾部添加一个新内容 prepend 在指定的元素里前部添加新内容 after 在指定元素后添加新内容 before 在指定元素的前面
  • Vue3 -- teleport传送门

    目录 teleport传送门 例 蒙层特效 目标效果 代码演示 页面效果 未使用teleport存在的问题 使用teleport实现目标效果 完整代码 总结 teleport传送门 Teleport 是一种能够移动 DOM到Vue根节点之外
  • 自学区块链:原理、技术及应用——什么是区块链(笔记)

    Bitcoin和区块链有很深的渊源 但Bitcoin与区块链两者不能等同 区块链是Bitcoin的底层技术 除了Bitcoin 还有很多其他的区块链技术应用 什么是 区块链 时间戳服务器对以区块 Block 形式存在的一组数据实施随机散列
  • 华为云计算HCIE之oceanstor仿真器的使用操作

    华为云计算HCIE之oceanstor仿真器的使用操作 一 登录检查oceanstor的状态 二 配置存储资源 1 创建硬盘域 2 创建存储池 3 创建LUN 4 创建LUN组 5 创建主机 6 创建主机组 7 创建映射关系 三 配置存储H
  • idea 连接云mysql_IntelliJ IDEA 连接数据库 详细过程

    连接到MySQL数据库 调出Database面板 IDEA配置Database数据源需要我们在IDEA的主界面中找到View gt ToolWindows gt Database 如下图所示 1 选择数据源 在IDEA中新建一个Java工程
  • T系接口源数据格式

    item apiStack name esi value endpoint mode android osVersion 9 26 0 protocolVersion 3 0 ultronage true data dinamic TB d
  • Unity + Jenkins自动打包 (二)构建Jenkins项目以及编写Python、Unity脚本

    1 新建Jenkens项目 在上一篇中 完成了Jenkins的安装和初始化 以及权限设置 查看上一篇 Jenkins安装 点此 现在打开浏览器 输入http localhost 8081 当然 需要改成你自己设置的Jenkins端口号 然后
  • lua c++中的一种回调解决方法

    见很多人发问cocos2dx 3 版本 lua 函数回调问题 我在项目中是这样解决的 因为我是使用了cocos 带有的 lua 绑定脚本 python写的 cocos2d x tools tolua genbindings py 在生成绑定
  • mac .ssh文件位置

    1 Finder gt 前往文件夹 gt 输入 ssh 2 打开终端 输入cd ssh cd ssh
  • vue组件库的开发流程

    欢迎点击领取 前端面试题进阶指南 前端登顶之巅 最全面的前端知识点梳理总结 开发流程 1 创建项目 vue cli 公司现有架构 2 调整项目静态目录结构 3 使用webpack相关库模式打包编译 4 使用npm或者公司源地址发布到你需要的