对封装好的Vue组件库进行打包,并发布到npm上

1. 新建vue 项目

在这里插入图片描述
并且在根目录创建两个文件夹 packagesexamples

packages:用于存放所有的组件
examples:用于进行测试组件,把src改为examples
在这里插入图片描述
在这里插入图片描述

2.配置vue.config.js 并设置入口文件

如果没有vue.config.js文件 就需要在项目根目录下创建vue.config.js文件,并进行如下配置。

  1. 设置entry属性将入口文件设置为examples下的main.js文件
  2. 通过chainWebpack对于项目进行配置,使用babel处理将高版本语法转成低版本语法,在我们封装组件库时,这部分配置可以直接复制使用。
const { defineConfig } = require('@vue/cli-service')
// module.exports = defineConfig({
//   transpileDependencies: true
// })

const path = require('path')
module.exports = defineConfig({
  transpileDependencies: true,
  pages:{
    index:{
      // 修改项目入口文件
      entry:'examples/main.js',
      template:'public/index.html',
      filename:'index.html'
    }
  },
  // 扩展webpack配置,使webpages加入编译
  chainWebpack: config => {
    config.module
    .rule('js')
    .include.add(path.resolve(__dirname,'packages')).end()
    .use('babel')
    .loader('babel-loader')
    .tap(options => {
      return options
    })
  }
})

在这里插入图片描述

3.在packages 目录下新建 index.js,默认导出一个install方法

  1. 我们将所有的组件和字体图标引入到index.js文件中
  2. 声明conpoments数组,将组件全部放到这个数组中
  3. 定义install方法,在Vue中注册所有的组件
  4. 判断是否直接引入了文件,如果引入了,则不需要调用Vue.use()方法(这一步可以让那些通过script导入的,无需Vue.use())
  5. 最后导出install对象
    在这里插入图片描述
// 整个包的入口
// 统一导出
// 导出颜色选择器组件
import Button from './button'
import Dialog from './dialog'
import Input from './input'
import Checkbox from './checkbox'
import Radio from './radio'
import RadioGroup from './radio-group'
import Switch from './switch'
import CheckboxGroup from './checkbox-group'
import Form from './form'
import FormItem from './form-item'
import './fonts/iconfont.css'
 
const components = [
  Button,
  Dialog,
  Input,
  Checkbox,
  Radio,
  RadioGroup,
  Switch,
  CheckboxGroup,
  Form,
  FormItem
]
// 定义install方法
const install = function (Vue) {
  // 遍历注册所有的组件
  components.forEach(component => {
    Vue.component(component.name, component)
  })
}
// 判断是否直接引入文件,如果是,就不用调用Vue.use()
if (typeof window !== 'undefined' && window.Vue) {
  install(window.Vue)
}
// 导出install方法
export default {
  install
}

4.打包组件库

vue-cli给开发者提供了很多构建目标的命令,我们可以将我们的vue项目构建成应用、库或者Web Components组件。

构建成库在vue-cli官方文档中找到如下命令:

vue-cli-service build --target lib

package.json文件中的script下加入该条指令,并且指定打包路径为 packages/index.js
在这里插入图片描述

"lib":"vue-cli-service build --target lib packages/index.js"

打包 命令如下:

npm run lib

打包成功后,得到如下文件,其中有不同规范下的js文件
在这里插入图片描述

5.上传到github

github新建一个仓库
在这里插入图片描述

第一步、使用git status命令查看git状态

git status

第二步、使用git add命令提交路径下文件

git add .

第三步、 使用git commit -m '上传组件' 命令填写 上传描述

git commit -m '封装组件并上传到github'

第四步、使用 关联远程仓库并上传代码到远程仓库中
在这里插入图片描述

git remote add origin https://github.com/RanGuMo/moran-ui.git
git branch -M main
git push -u origin main

github项目地址: https://github.com/RanGuMo/moran-ui

6.将组件库上传到npm

第一步、设置package.json中的配置项

如果想把包发布到npm上,package.json中的private必须为fasle,并且name必须为npm上没有的包,否则不能上传,同时我们可以指定入口文件 "main": "dist/moran-ui.umd.min.js"
也可以添加个人信息
在这里插入图片描述
第二步、在项目的根目录下增加一个.npmignore文件

这个文件的作用是将一些不需要上传到npm的路径、文件进行忽略,我们在上传到npm时就不会把这部分上传了。只上传dist路径下的打包文件,不需要上传源码。
在这里插入图片描述

# 忽略目录
examples/
packages/
public/
 
# 忽略指定文件
vue.config.js
babel.config.js
*.map

第三步、上传到npm

  1. 如果安装了nrm,需要保证当前的源时是npm
    在这里插入图片描述

  2. 使用npm login 登录,注意,需要注册npm 账号

  3. 使用npm publish命令直接发布到npm

  4. 进入npm官网直接搜索package.json 中指定的name属性值,我这里是moran-ui,所以就搜索moran-ui

  5. 进入npm官网直接搜索name属性指定的包名就可以找到了
    在这里插入图片描述

  6. 注意,如果需要再次上传到npm ,需要修改 package.json 中的版本号version
    在这里插入图片描述

墨苒孤
关注 关注
  • 6
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
vue封装组件,类似elementUI组件打包发布npm
cscscssjsp的博客
01-24 8587
封装vue组件的两种方法和形式: 一:是建立一个webpack-simple 项目 二:是在通过vue-cli脚手架建立webpack vue项目,这种项目有点冗余,可是我们对这种项目最熟悉 下面分别介绍两种用法: 一: 1.首先先建立一个vue项目: 通过vue init webpack-simple,新建项目目录如下: 箭头指的是在项目打包后产生的文件(打包命令npm ru...
如何发布自己的NPM包详细步骤
最新发布
接着奏乐接着舞的博客
08-19 1477
前端开发中,将自己编写的 Vue 组件或插件打包发布NPM 上,不仅可以方便自己在其他项目中复用,还能分享给更多的开发者使用。本文将从 NPM 注册、登录与发布流程,及如何通过 Vue CLI 打包插件的角度详细介绍如何发布 Vue 插件。通过以上步骤,你可以成功将 Vue 组件打包发布NPM 上。本文详细介绍了从 NPM 注册、登录、发布,到通过 Vue CLI 配置和打包插件的完整流程。希望通过这篇文章,你能够更好地理解 Vue 插件的发布流程,并能够在实际项目中灵活应用。
组件封装发布自己的npm
2302_76361520的博客
06-03 520
使用vue框架开发,封装自己私有的组件上传到npm
自定义Vue组件打包发布npm及使用教程
12-12
本文将帮助:将自己写的Vue组件打包npm进行代码托管,以及正常发布之后如何使用自己的组件。   本文讲述的仅仅是最基础的实现,其他复杂的操作需要非常熟悉webpack的相关知识,作者将继续学习。   按照大佬文中写的一步步操作,够细心的话基本可以一步到位。下面总结一下发布步骤:   1. 利用Vue的脚手架新建一个简易版的Vue项目my-project:   vue init webpack-simple my-project -> cd my-project -> npm i -> npm run dev   2. 编写组件:   src下新建myPlugin文件夹用于存放所以开发的组件
Vue封装组件发布npm(无第三方依赖)
weixin_53474595的博客
12-07 2494
使用Vue框架进行开发,组件封装是一个很常规的操作。一个封装好的组件可以在项目的任意地方使用,甚至我们可以直接从npm下载别人封装好的组件进行使用,比如iview、element-ui这一类的组件。但是每个公司的需求是不一样的,我们可以封装自己的组件发布npm上去,这样可以不用碰到相似的项目就复制一大串代码了,简洁明了,要用的时候可以直接从npm安装使用。封装的是Vue组件,所以我们直接在Vue脚手架项目里面进行封装即可(1)初始化Vue项目 (2)运行项目 因为我们可能会封装多个
Vue 2 组件打包发布npm
BI
03-08 1656
打包 Vue 2 组件,并发布npm 的最佳实践
Vue封装组件发布npm
heros0806的博客
10-13 1372
Vue封装组件发布npm
Vue组件打包发布npm包管理平台
yuansusu_的博客
06-03 2940
想要项目组件上传npm
Vue 组件封装 并使用 NPM 发布的教程
10-17
Vue 组件封装与使用 NPM 发布的过程是将开发的Vue组件通过NPM进行管理和分发的标准流程。本文将详细介绍如何封装一个Vue组件,并将其发布NPM,以便其他开发者能够方便地通过包管理工具引入和使用这些组件。 ...
Vue-Cli4+Vue3 创建、发布封装UI组件打包发布npm 项目安装及使用
qq_41279792的博客
03-20 677
packages/advancedform/index.js:文章目录 packages/advancedform/index.js:文章目录 1、创建项目 1.1 调整目录 我们需要一个目录存放组件,一个目录存放示例,按照以下方式对目录进行改造。 2.创建测试组件 advancedform.vue: packages/advancedform/index.js: package/index.js: 3、配置项目以支持新的目录结构 4、根目录新增vue.config.js .
vue封装组件发布npm上的全过程
u013994400的博客
04-20 2181
vue3封装组件发布npm
vue 封装公共组件发布npm#记录
junsens的博客
03-21 1126
vue 封装公共组件发布npm
Vue插件打包发布
weixin_33749242的博客
08-16 149
插件功能开发完成后,若需要发布到公共组件中(例如:npmjs),需要对插件进行打包发布,简单说明一下这个过程,以插件名 dialog 为例 创建 dialog 目录,并进入 运行命令行,初始化项目,生成 package.json npm init -y 复制代码 使用 webpack-simple 模板构建项目基本结构(前提为已自行安装好 vue-cli) vue init webpac...
教你如何使用JavaScript如何80行代码写个小项目_如何写javascript的项目目地
2401_84433570的博客
04-27 271
面试前要精心做好准备,简历上写的知识点和原理都需要准备好,项目上多想想难点和亮点,这是面试时能和别人不一样的地方。还有就是表现出自己的谦虚好学,以及对于未来持续进阶的规划,企业招人更偏爱稳定的人。万事开头难,但是程序员这一条路坚持几年后发展空间还是非常大的,一切重在坚持。开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】前端面试题汇总JavaScript前端资料汇总。
vue封装公共组件发布npm详细教程
weixin_45304198的博客
04-23 3505
vue组件封装的原理:利用vue框架提供的api: Vue.use( plugin ),我们需要把封装组件的项目打包vue,并提供install方法,然后发布npm中。Vue.use( plugin )的时候会自动执行插件中的install方法。
如何封装Vue组件并上传到npm
Amelian的博客
04-18 1385
该文组件封装的方式其实是打包发布的方式,这种方式是将装好的组件最终打包成一个或者多个js文件发布。这种方式使得开发和调试时更接近于一个前端项目。但是一旦引入图片等静态资源需要同个BASE64的方式打包到js,而对于字体一类较大的静态资源则根本无法引用适用范围:没有或极少的依赖第三方插件、图片的组件封装或JS方法的封装打包发布打包发布webpack需要配置无需配置发布发布前需要打包发布前无需打包引用静态文件较小的图片可以通过BASE64方式打包仅js文件随意使用引用第三方依赖。
简单发布vue组件npm
weixin_48314721的博客
03-16 319
简单发布vue组件npm 封装打包发布npm 将我们的组件定义好 创建index.js文件 引入我们的组件 Vue的插件模式需要暴露一个install方法 在package.json中顶一个打包命令 vue-cli-service build --target lib ./src/common_ui/index.js --dest common_ui --name ui21 // --target lib PATH,打包目录(入口) // --dest DIR 打包后的文件夹名称 // --name
自定义vue组件发布npm
宁静致远
09-24 2366
使用Vue框架做前端开发,组件封装是一个很常规的操作。随着时间的积累,组件也会越来越多,配合vuepress可以解决组件文档的统一化,但依然解决不了组件的跨项目复用问题。一个公司中不可能只基于一个框架或项目开发,不同的业务或模块会另起项目,这时,如果是把项目的复用组件通过复制的方式引入另一项目,就显得麻烦,而且如果组件升级或修复bug,不能实时同步。如何解决组件的跨项目复用,是每个团队都会面临的问题。
vue封装自定义组件,打包发布npm上使用
08-30
Vue是一种用于构建用户界面的渐进式JavaScript框架,它可以通过封装组件来实现可复用、模块化以及易于维护的代码。下面我将介绍如何对Vue组件进行封装,并将其打包发布npm上供他人使用。 首先,我们需要创建一个Vue项目,并在项目中使用Vue CLI来进行组件的开发和构建。可以通过以下命令创建一个新的Vue项目: ``` vue create my-component ``` 接下来,您可以通过Vue CLI支持的任何方式(如单文件组件、JavaScript脚本等)创建自定义组件。在组件的开发过程中,可以利用Vue提供的各种功能和特性,比如计算属性、生命周期钩子函数、模板语法等。确保你的组件功能完备、可复用且易于理解。 完成组件的开发后,我们需要将其打包成可用的npm包。Vue CLI可以帮助我们自动进行打包,只需执行以下命令: ``` npm run build ``` 该命令将生成一个dist文件夹,其中包含了打包后的组件代码。 接下来,我们需要在项目的根目录中创建一个package.json文件,用于描述我们的npm包,并设置一些配置信息。其中,name字段用于定义npm包的名称,version字段用于定义npm包的版本号。其他字段根据您的需要进行设置。然后,执行以下命令将package.json文件拷贝到dist文件夹中: ``` cp package.json dist/ ``` 然后,我们需要登录到npm官方网站,并创建一个账户。接着,使用以下命令进行登录: ``` npm login ``` 在登录成功后,使用以下命令发布npm包: ``` npm publish dist/ ``` 完成上述步骤后,您的自定义Vue组件就已经发布到了npm上。其他开发者可以通过以下命令安装并使用您的组件: ``` npm install your-component ``` 然后,在他们的Vue项目中,可以通过import语句引入您的组件,并在模板中使用它。 至此,我们已经学习了如何封装自定义Vue组件,并通过npm发布,供他人使用。希望这能帮助到您!
写文章

热门文章

  • windows10更新windows11后,发现不支持PL2303TA(PL2303TA不支援WINDOWS 11及后续版本,请洽询购买厂商) 31552
  • maven项目报settings.xml文件语法错误:‘settings.xml‘ has syntax errors 14428
  • 【MySQL】 java.sql.SQLException: The server time zone value 的解决办法 10028
  • 微信网页版解封方法 7397
  • 【C#基础】ref 和 out 的区别 7185

分类专栏

  • 前端 3篇
  • CSS3 2篇
  • JavaScript 2篇
  • Vue 15篇
  • uniapp 1篇
  • node 3篇
  • Java 6篇
  • MySQL 3篇
  • intellij  idea相关异常 2篇
  • Linux 1篇
  • 虚拟机 4篇
  • PHP 1篇
  • C# 9篇
  • 杂项 2篇

最新评论

  • 【MySQL】 java.sql.SQLException: The server time zone value 的解决办法

    RL_LYC: 还真是,加上后就可以了,感谢

  • 【npm】npm 代理问题

    CSDN-Ada助手: 推荐 Vue入门 技能树:https://edu.csdn.net/skill/vue?utm_source=AI_act_vue

  • windows10更新windows11后,发现不支持PL2303TA(PL2303TA不支援WINDOWS 11及后续版本,请洽询购买厂商)

    谁寄云中: 谢谢博主

  • 【MySQL】 java.sql.SQLException: The server time zone value 的解决办法

    既见未来,为何不拜???: 感谢,很有用

  • 对封装好的Vue组件库进行打包,并发布到npm上

    水煮cy今生: 按这个操作弄完,原项目再运行报错Resizeobserver loop completed with undelivered notifications.

大家在看

  • 【Coroutines】Deep and Deep Into Kotlin Coroutines 1272
  • 思维导图软件 SimpleMind Pro v2.5.0 中文授权版
  • 【Conda】解决 Conda 安装包时遇到的 `Collecting package metadata` 问题
  • 模版和STL
  • NGINX 的 Event Loop 459

最新文章

  • 【部署项目】禹神:前端项目部署上线笔记
  • 【vue3】transition 属性 加上 mode=“out-in“ 页面跳转出现空白
  • 【Electron】Electron学习笔记
2024年10篇
2023年18篇
2022年18篇
2021年23篇

目录

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳坪山网站建设公司深圳网站优化最好的网络公司网站加速优化青浦区谷歌网站优化费用网站整站优化多少钱为什么网站一直优化不了网站可以做多少优化关键词福州市网站优化模式中山网站优化排名优化网站优化与管理百度文库怀化高质量营销型网站优化工业园网站优化服务律师网站优化_网络建设推广网站优化在济南工资待遇怎么样中国移动网站优化建议整个网站只优化一个词泰州网站优化咨询热线荆州外包网站优化网站优化公司首先选兴田德润汕尾网站建设与优化网站怎么优化适合火25星推南宁网站页面优化南宁seo网站优化推广胶南网站建设优化宣城网站关键词优化哪家服务好谷歌网站优化哪家便宜手机网站 优化SEO网站结构优化步骤北京网站推广优化排名咸宁本地网站优化公司排名天津诚信服务企业网站优化香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化