Vue 封装自定义组件,通过npm install的方式安装使用

news/2024/11/9 10:03:40/

1、新创建一个空的项目

npm install -g @vue/cli    安装脚手架4的版本
vue create vue-demo        使用安装的脚手架创建一个新的vue项目
npm run serve              运行创建的项目命令

2、在src下创建一个package文件夹用于存放自己的自定义组件,我创建了一个测试文件夹(mapuse),下面创建了一个mapuse.vue文件,文件内容如下:

注意: 自己封装的组件里面一定要有name属性,为后期install node包后 在页面使用的组件名

<template><div>{{ test }}---{{ name }}</div>
</template>
<script>export default {name: 'mapuse',data () {return {test: '123'}},props: {name: {type: String,default: ''}}}
</script>

3、在package文件夹下创建一个index.js文件,内容如下:

 require.context('../package', true, /\.vue$/)路径是在此文件中找到对应的vue文件的路径

const requireAll = require.context('../package', true, /\.vue$/)
export const install = ((Vue) => {requireAll.keys().map(fileName => requireAll(fileName)).forEach(({ default: curComp }) => {Vue.component(curComp.name, curComp)})
})
// 这个方法以后再使用的时候可以被use调用
export default install

4、修改项目根目录下package.json,增加一句打包代码:

"package": "vue-cli-service build --target lib ./src/package/index.js --name kun-kun-test --dest kun-kun-test"
"scripts": {"serve": "vue-cli-service serve","build": "vue-cli-service build","lint": "vue-cli-service lint","package": "vue-cli-service build --target lib ./src/package/index.js --name mapuse --dest mapuse"},

打包命令解释:

--target lib 关键字 指定打包的目录

--name 打包后的文件名字

--dest 打包后的文件夹的名称

然后执行打包命令:

npm run package

打包执行完成后我们项目目录下就会多出一个mapuse文件夹,存放的是打包后的文件。

5、想要发布到npm仓库,我们还得在文件夹下初始化一个package.json文件。

在mapuse目录下,执行命令:

npm init -y

会生成一个package.json的文件

 注意: package.json文件中的name里面不能有大写!!!

6、发布到npm仓库

1)注册账号

想要发布到npm仓库,就必须要有一个账号,先去npm官网(npm)注册一个账号,注意记住用户名、密码和邮箱,发布的时候会用到。

(2)设置npm源

有些小伙伴可能本地的npm镜像源采用的是淘宝镜像源或者其它的,如果想要发布npm包,我们得吧我们得npm源切换为官方得源,命令如下:

npm config set registry=https://registry.npmjs.org

(3)添加npm用户

进入common-package-ui目录,添加npm用户,执行命令:

npm adduser

这里会让你填写用户名、密码(不会显示出来 就正常输入后enter就行)、邮箱,然后会收到一封邮件,邮件里面有个临时验证码 需要输入,如果之前设置过即可跳过此步。

(4)发布npm

在mapuse目录下执行命令:

npm publish

如果发布失败可在百度搜索失败code码,一般都是名字重复或者名字不合格

7、使用

在另外一个项目中进行安装

npm install 插件名称(package.json中的名称)

然后在main.js引用注册,代码如下:

import mapuse from 'mapuse'
Vue.use(mapuse)

新建一个空的vue文件使用此插件

<插件名称></插件名称>

完成!

 


http://www.ppmy.cn/news/73895.html

相关文章

PETRv2 论文学习

1. 解决了什么问题&#xff1f; 过去&#xff0c;一般使用基于单目视觉进行 3D 目标检测。现在进行 3D 任务的方法大致分两类。一类是基于 BEV&#xff0c;将多视角图像映射为 BEV 表征&#xff0c;然后使用 3D 目标检测方法。另一类是基于 DETR&#xff0c;如 DETR3D 和 PETR…

11. Mysql执行原理之索引合并详解

MySQL性能调优 1. Intersection合并1.1 情况一&#xff1a;等值匹配1.2 情况二&#xff1a;主键列可以是范围匹配 2. Union合并2.1 情况一&#xff1a;等值匹配2.2 情况二&#xff1a;主键列可以是范围匹配2.3 情况三&#xff1a;使用Intersection索引合并的搜索条件 3. Sort-U…

GIT常用命令大全

系列文章目录 文章目录 系列文章目录1.git clone xxx2.git add .3.git commit -m "xxx"4.git checkout -b xx origin/xx5.git push --set-upstream origin newbranch:origin/branch6.git branch --set-upstream-toorigin/branch newbranch7.git reset --soft HEAD^8.…

从零开始学习JVM(五)-运行时数据区的方法区

1. 方法区基本介绍 官方文档&#xff1a;The Java Virtual Machine Specification 《Java虚拟机规范》中明确说明&#xff1a;“尽管所有的方法区在逻辑上是属于堆的一部分&#xff0c;但一些简单的实现可能不会选择去进行垃圾收集或者进行压缩。”但对于HotSpotJVM而言&…

Godot引擎 4.0 文档 - 循序渐进教程 - 节点和场景

本文为Google Translate英译中结果&#xff0c;DrGraph在此基础上加了一些校正。英文原版页面&#xff1a; Nodes and Scenes — Godot Engine (stable) documentation in English 节点和场景 在Godot 关键概念概述中&#xff0c;我们看到 Godot 游戏是一棵场景树&#xff0…

面试官:你的技术看起来像是初级

最近看了很多简历&#xff0c;很多候选人年限不小&#xff0c;但是做的都是一些非常传统的项目&#xff0c;想着也不能通过简历就直接否定一个人&#xff0c;何况现在大环境越来 越难&#xff0c;大家找工作也不容易&#xff0c;于是就打算见一见。 在沟通中发现&#xff0c;由…

敏捷项目管理阶段框架-推测阶段实践

推测阶段实践 关注产品和项目&#xff0c;创造和理解产品待办事项列表和发布计划 怎么做计划、怎么做需求 产品需求规划&#xff08;怎么做计划&#xff09; 洋葱圈 愿景、产品路线图、产品发布计划、迭代发布计划、每日计划 滚动式规划&#xff0c;渐进明细&#xff0c;走一…

“GPT+医疗健康”:给予医疗领域新机遇

现如今&#xff0c;GPT十分火热。随着人们对健康医疗的关注越来越热切&#xff0c;GPT已逐渐成为健康医疗领域的重要角色之一。GPT可以用于许多医疗语境中&#xff0c;如医学咨询、病症诊断、健康建议、在线问诊、患者教育、健康数据跟踪等。 GPT是一种基于深度学习的自然语言处…