前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >封装一个vue组件

封装一个vue组件

作者头像
yutingbai
发布于 2022-08-18 09:44:46
发布于 2022-08-18 09:44:46
59600
代码可运行
举报
文章被收录于专栏:前端小菜鸡前端小菜鸡
运行总次数:0
代码可运行

1. 首先需要初始化一个组件的框架,需要具备Vue-cli,npm

输入vue init webpack-simple <project-name>之后,一路回车就是了(sass可以根据自己爱好选择),然后根据出现的提示依次执行切换目录,下载依赖。

2.跑起来之后项目就长这个亚子

当前目录结构就是这个样子的,跟原本Vue-cli的目录结构差不多

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 message-bell
├── README.md
├── index.html
├── package-lock.json
├── package.json
├── src
│   ├── App.vue
│   ├── assets
│     └── logo.png
│   └── main.js
└── webpack.config.js

3.在src目录下新建一个components文件夹,我们就在这个文件夹里写组件

组件的写法是和平常项目里的写法一样的

4.组件写好之后就可以在当前项目里测试了,首先删掉App.vue文件里的内容,然后把刚刚写的组件引进来,就可以看到刚写的组件了

4.在组件components下面新建index.js文件,来写导出的组件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// sumFunction 插件对应组件的名字
import messageBell from './message-bell/message-bell'

// Vue.js 的插件应当有一个公开方法 install 。第一个参数是 Vue 构造器,第二个参数是一个可选的选项对象
// 参考:https://cn.vuejs.org/v2/guide/plugins.html#%E5%BC%80%E5%8F%91%E6%8F%92%E4%BB%B6
// 此处注意,组件需要添加name属性,代表注册的组件名称,也可以修改成其他的
 


const messages = {
   install(Vue){
       Vue.component('messageBell', messageBell)
   } 
}
/* 支持使用标签的方式引入 */
if(typeof window !== 'undefined' && window.Vue){
    window.Vue.use(messages);
}
export default messages;

5.修改webpack.config.js文件的出入口文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 执行环境
const NODE_ENV = process.env.NODE_ENV;
console.log("-----NODE_ENV===",NODE_ENV);

// entry: './src/main.js',
 // 根据不同的执行环境配置不同的入口
 entry: NODE_ENV == 'development' ? './src/main.js' : './src/components/index.js',
 /* output: {
   path: path.resolve(__dirname, './dist'),
   publicPath: '/dist/',
   filename: 'build.js'
 }, */
 output: {
   path: path.resolve(__dirname, './dist'),
   publicPath: '/dist/',
   filename: 'messageBell.js',
   library: 'messageBell', // 指定的就是你使用require时的模块名
   libraryTarget: 'umd', // 指定输出格式
   umdNamedDefine: true // 会对 UMD 的构建过程中的 AMD 模块进行命名。否则就使用匿名的 define
 },

修改完之后,执行npm run build查看打包结果

这样就算是打包成功了

6.修改package.json

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//"private": true,
"private": false,
"main": "dist/messageBell.js",

7.然后只要有npm账号,就可以发布组件啦,记得将npm版本切换为官方npm呦

npm官网注册

注册完之后需要邮箱验证,没有验证的话无法上传组件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//登陆
npm login 
//生成版本号
npm version patch
//上传组件
npm publish
//取消上传
npm unpublish <组件名>

Tips

  • 上传之前先清空git的workTree
  • 如果只是尝试写组件,上传完记得删除哦
  • 如果修改了组件内容记得重新打包再上传
  • 在项目里引用的时候可以直接import
  • 也可以用npm link在打包上传之前在本地项目里测试
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-02-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
webapck 的学习基础,适合小白,初学者,进阶者学习。
Webpack 是德国开发者 Tobias Koppers 开发的模块加载器兼打包工具,在webpack中,它能把各种资源,例如JS(含JSX)、coffee、样式(含less/sass)、图片等都作为模块来使用和处理。因此, Webpack 当中 js 可以引用 css, css 中可以嵌入图片 dataUrl。 对应各种不同文件类型的资源, Webpack 有对应的模块 loader比如vue用的是​​vue-loader​​
七条猫
2024/10/14
840
webapck 的学习基础,适合小白,初学者,进阶者学习。
将vue组件发布为npm包
如果没有全局安装@vue/cli-init,还需要先安装@vue/cli-init
conanma
2021/12/06
1.2K0
Vue-cli教程
一、安装vue-cli 安装vue-cli的前提是你已经安装了npm,安装npm你可以直接下载node的安装包进行安装。你可以在命令行工具里输入npm -v  检测你是否安装了npm和版本情况。出现版
用户1212940
2018/01/23
2K0
Vue-cli教程
Vue老项目支持Webpack打包
最近在学习Vue.js。版本是2.6,webpack的版本也相对较老,是2.1.0版本。项目脚手架只配置了npm run dev和npm run build。运行脚本如下:
八哥
2020/08/11
6770
Vue2.0 新手完全填坑攻略——从环境搭建到发布
Homebrew 1.0.6(Mac)、Node.js 6.7.0、npm 3.10.3、webpack 1.13.2、vue-cli 2.4.0、Atom 1.10.2
onety码生
2018/11/21
1.8K0
手摸手 Webpack 多入口配置实践
再一次,在网上找的不少文章都不合我的需求,很多文章都是只简单介绍了生产环境下配置,没有介绍开发环境下的配置,有的也没有将多入口结合 vue-router、vuex、ElementUI 等进行配置,因此在下通过不断探坑,然后将思路和配置过程记录下来,留给自己作为笔记,同时也分享给大家,希望可以帮助到有同样需求的同学们~
前端下午茶
2019/09/12
8330
手摸手 Webpack 多入口配置实践
​(非软文)Webpack从入门到实战搭建Vue脚手架(一万字总结)
安装依赖包 (-D 将依赖记录成开发依赖, 只是开发中需要用的依赖, 实际上线不需要的)
Vam的金豆之路
2021/12/01
1.3K0
Vue.js入门手册整理
webpack简介,webpack是一个前端资源加载/打包工具,将各种js/css/html代码最后打包编译到一起。vuejs已经集成
SmileNicky
2019/03/20
2.3K0
Vue.js入门手册整理
webpack 基础知识整理
webpack是一个 模块打包工具,支持所有的打包语法,比如 ES Module、CommonJS、CMD、AMD。初期的webpack是用来模块打包js的,发展到现在,已经可以打包很多种文件类型,比如 css、img 。
神葳
2021/01/22
1.4K0
Webpack组件库打包超详细指南
我们的打包配置有一个基类文件,并根据不同的打包需求,有不同子类文件——完整组件库打包、单个组件打包、打包示例工程。
luciozhang
2023/04/22
3.3K1
Webpack组件库打包超详细指南
Vue学习-Webpack
从本质上来讲,webpack是一个现代的JavaScript应用的静态模块打包工具。
花猪
2022/02/17
1.3K0
Vue学习-Webpack
vue常用手册
1.在src/components目录下新建User.vue文件,同时再新建User目录,在User目录下新建UserAdd.vue和UserList.vue两个文件
玩蛇的胖纸
2018/12/25
8780
Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇——纯前端多页面)
Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇——纯前端多页面) @(HTML/JS) 一般来说,使用vue做成单页应用比较好,但特殊情况下,需要使用多页面也有另外的好处。例如手Q的多webview架构,新开页面有利于ios右划返回,也避免了返回时页面的刷新。 所以,这里我们探讨一下如何配置实现多页面的项目框架。这里是开篇,先以最简单的纯前端多页面为例入手,最终目标是完成Node.js多页面直出+前后端同构的架构。 本文源代码:https://github.com/ke
用户1258909
2018/07/03
1.4K0
npm发布包以及更新包还有需要注意的几点问题(这里以发布vue插件为例)
在此之前,你需要去npm官网注册一个属于自己的账号,记住自己的账户名以及密码、邮箱,后面会用的到。
Vam的金豆之路
2021/12/01
1.1K0
npm发布包以及更新包还有需要注意的几点问题(这里以发布vue插件为例)
进阶| Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇)
前端爱好者的知识盛宴 嗨 这里是IMWEB 一个想为更多的前端人 享知识  助发展 觅福利 有情怀有情调的公众号 欢迎关注转发 让更多的前端技友一起学习发展~ 本文作者:鹅厂高级工程师--郑高强 文章来源:http://www.cnblogs.com/kenkofox 导语 一般来说,使用vue做成单页应用比较好,但特殊情况下,需要使用多页面也有另外的好处。例如手Q的多webview架构,新开页面有利于ios右划返回,也避免了返回时页面的刷新。 所以,这里我们探讨一下如何配置实现多页面的项目框架。这里是
用户1097444
2022/06/29
4780
进阶| Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇)
手把手教你写一个Vue组件发布到npm且可外链引入使用
前言 我们为什么要写个组件上传到npm镜像上呢,我们肯定遇到过这样一个场景,项目中有很多地方与某个功能相似,你想到的肯定是把该功能封装成Component组件,后续方便我们调用。但是过了一段时间,你
Sneaker-前端公虾米
2021/06/21
4680
手把手教你写一个Vue组件发布到npm且可外链引入使用
在vue中使用ts
首先找到文档:https://www.tslang.cn/samples/index.html
阿超
2022/08/21
8430
在vue中使用ts
从零开始搭建Vue工程
dist目录存放编译后的资源 src存放源码文件 运行命令 npm init -y
切图仔
2022/09/08
8580
从零开始搭建Vue工程
一个 Vue + Node + MongoDB 博客系统
耗时半载(半个月)的大项目终于完成了。这是一个博客系统,使用 Vue 做前端框架,Node + express 做后端,数据库使用的是 MongoDB。实现了用户注册、用户登录、博客管理(文章的修改和删除)、文章编辑(Markdown)、标签分类等功能。
超超不会飞
2020/09/18
1.6K0
webpack5构建一个小型简单vue项目 (练习)
webpack5构建vue 必要环境 安装ndejs 我们需要安装node 如果没有安装则安装 安装过则跳过 下载安装nodejs 执行 node -v npm -v [在这里插入图片描述] 初始化项目文件夹 新建一个空的项目 执行 npm init -y 初始化 npm init -y 会生成一个package.json [在这里插入图片描述] 安装webpack以及 html-webpack-plugin 控制台执行 npm i webpack webpack-cli webpack-dev-serv
代码哈士奇
2022/01/31
1K1
相关推荐
webapck 的学习基础,适合小白,初学者,进阶者学习。
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验