怎么把自己写的组件发布到npm官方仓库??

news2024/9/22 23:34:49

一.注册npm账号

npm官网

1.注册npm 账号
在这里插入图片描述
2.登陆
在这里插入图片描述
3.登陆成功
在这里插入图片描述

二.搭建一个vue 项目

具体步骤参考liu.z Z 博客

或者初始化一个vue项目

vue create XXX  (工程名字)

运行代码

npm run serve

三.组件封装

1.在src文件下建一个package文件,用来放需要上传到npm的组件
2.编写好自己的组件最好在App.vue 引用一下文件看看这个组件有没有错误文件

(自己写的组件注意一定要写name)

3.在package文件下建一个index.js

目录结构:assets文件是用来保存静态图片的文件、components 文件是我用来放组件的

在这里插入图片描述
index.js文件内容

import ElementUI from 'element-ui'

import MyTable from "./components/myTable/index.vue"; // 引入封装好的组件
const coms = [MyTable]; // 如果有多个其它组件,都可以写到这个数组里
 
// 遍历可以批量组件注册
const install = function (Vue) {
 Vue.use(ElementUI);
  coms.forEach((com) => {
    Vue.component(com.name, com);
  });
};

export default install; // 这个方法使用的时候可以被use调用

四.配置项目文件

1.在根目录下的package.json 文件中 配置:

 "private": false,    //一定设置为false,为true表示拒绝上传到npm包管理平台
 "main": "plugin/index.js",    //文件入口文件

五.设置打包命令

scripts 配置项中,配置打包命令:

  "package": "vue-cli-service build --target lib ./src/views/package/index.js --name myTable --dest myTable"

前面的package可以根据自己喜好进行命名,后面的命令为:
–target lib 路径 => 指定打包的目录 (打包路径地址一定要写对,不然运行打包命令会报错)
–name 名称 => 打包后的文件名字
–dest 名称 => 打包后的文件夹的名称
执行命令:

npm run package

注意 需要在src文件下建一个package文件下去执行这个命令

不然就会报错:
ERROR Failed to resolve lib entry: ./src/views/package/index.js. Make sure to specify the correct entry file.

打包完成后的信息,并在根路径下生成了一个打包文件 (打包目录在根目录下)
在这里插入图片描述
打包后的目录如下(这里我没有写样式所以没有生成css):
在这里插入图片描述

六.组件发布

1.要发布到npm 里,这里还需要新建一个文件夹,把.und.min.js给复制出来放到文件夹下,然后初始化一个packages.json (注意,packages.json不是自己去创建)

npm init -y

目录结构:
在这里插入图片描述
2.注意查看packages.json文件里的配置是否正确,可以继续配置自己需要的信息
3.需要发布的文件夹配置好了之后,就是需要有一个npm账号,如果没有去注册,要注意记住用户名、密码和邮箱,一会发布的时候会用到。然后需要配置的就是源必须是npm。需要配合nrm使用更方便。
还是在需要打包的 packages 文件夹下安装

npm i nrm -g   //  安装 nrm

nrm ls    // 列出当前所有源的列表  

nrm use npm    // 切换使用到 npm

4.登陆npm

npm login 或者 npm adduser

查看当前npm源

 npm config get registry

5.发布到远程仓库

npm publish

这里需要注意,你发布时,刚刚初始化的 package.json 文件的 name 名字不能有大写或重名否则会报错,改为合法包名且不重复的包名即可(这里也不能有特殊符号命名不然也会报错)。
在这里插入图片描述

如果有报402 Payment Required - PUT https://registry.npmjs.org/xxx - You must sign up for private packages 这样的错误的话

需要在发布文件下的packages.json 中配置以下代码

  "publishConfig": {
    "access": "public",
    "registry": "https://registry.npmjs.org/"
  },

然后在运行 npm publish 就成功了
在这里插入图片描述

七.全局注册

1.发布成功后,就可以在npm中去查看命令
在这里插入图片描述
在这里插入图片描述
2.找到安装命令后,即可在全局注册使用该组件了,使用方法可以参照 element-ui
在main.js文件中

import Vue from 'vue'
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue'
import router from './router'
import store from './store'
// 引用组件
import myTable from 'my-table-test';


Vue.config.productionTip = false
Vue.use(ElementUI);
Vue.use(myTable);
new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')

3.在自己需要的界面引用一下这个组件就可以了
注意: 组件名称对应初始化组件中的name

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1928287.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

EMQX开源版安装

一、EMQX是什么 EMQX 是一款开源的大规模分布式 MQTT 消息服务器,功能丰富,专为物联网和实时通信应用而设计。EMQX 5.0 单集群支持 MQTT 并发连接数高达 1 亿条,单服务器的传输与处理吞吐量可达每秒百万级 MQTT 消息,同时保证毫秒…

参考——CCS联合CLion调试__开发TI芯片

一、简介 随着电赛临近,有些题必须指定使用TI芯片,那么就不得不学一下CCS。虽然CCS相较于Keil和IAR,显得更现代化一些,但还是没有代码样式、代码格式化、代码补全等功能。如果你用惯了CLion再用CCS,就会有些许一言难尽…

LLM之Prompt(四)| OpenAI、微软发布Prompt技术报告

摘要 生成式人工智能 (GenAI) 系统正越来越多地部署在各行各业和研究机构。开发人员和用户通过使用提示或提示工程与这些系统进行交互。虽然提示是一个广泛提及且被研究的概念,但由于该领域的新生,存在相互矛盾的术语和对构成提示…

十七、【文本编辑器(三)】图像坐标变换

目录 一、缩放功能 二、旋转功能 三、镜像功能 四、QMatrix简单介绍 一、缩放功能 (1)在头文件中添加 “protected slots:" 变量: void ShowZoomln( ); (2)在 createActionso函数的最后添力口事件关联&…

sealos快速安装k8s

Sealos 提供一套强大的工具,使得用户可以便利地管理整个集群的生命周期。 功能介绍 使用 Sealos,您可以安装一个不包含任何组件的裸 Kubernetes 集群。此外,Sealos 还可以在 Kubernetes 之上,通过集群镜像能力组装各种上层分布式…

数据结构——考研笔记(三)线性表之单链表

文章目录 2.3 单链表2.3.1 知识总览2.3.2 什么是单链表2.3.3 不带头结点的单链表2.3.4 带头结点的单链表2.3.5 不带头结点 VS 带头结点2.3.6 知识回顾与重要考点2.3.7 单链表的插入和删除2.3.7.1 按位序插入(带头结点)2.3.7.2 按位序插入(不带…

AI写作不懂提示词 大象Prompt 保姆级系列教程三

一、提示词的核心价值究竟是啥? 最近跟不少业内朋友探讨这事儿,我觉得:提示词的核心价值在于对方法论的封装以及由此带来的知识传播速度加快。 通俗讲,假如你熟悉的行业里有个厉害的“老师傅”,他在核心业务上有好多心…

通用图形处理器设计GPGPU基础与架构(三)

一、前言 前两篇已经介绍了 GPGPU 的背景 和 GPGPU 的编程模型相关的内容,本文将在 SIMT 计算模型的基础上,介绍 GPGPU 控制核心架构和微体系结构的设计。 二、CPU-GPGPU 异构计算系统 一个由 CPU 和 GPGPU 构成的异构计算平台如下图所示,GP…

【常见开源库的二次开发】基于openssl的加密与解密——Base的编解码(二进制转ascll)(二)

目录: 目录: 一、 Base64概述和应用场景 1.1 概述 1.2 应用场景 二、Base16 2.1 Base16编码 2.2 Base16编解码 三、Base64 四、OpenSSL BIO接☐ 4.1 Filter BIOs: 4.2 Source/Sink BIOs: 4.3 应用场景: 4.4 具体使用&…

HCIE是什么等级的证书?

HCIE(华为认证互联网专家,Huawei Certified Internetwork Expert)是华为认证体系中的最高等级证书。它要求考生具备在复杂网络环境中规划、设计、部署、运维和优化网络的能力。HCIE认证是华为认证体系中最具挑战性和含金量的认证之一&#xf…

EPLAN 去掉PDF中的红色跳转标识

EPLAN PDF图纸导出后体验跳转标识会有红色标识,如何去掉呢?下面介绍一下方法: 此为现象: EPLAN 2.9的帮助文档里提示: 在导出的 PDF 文档中,跳转后的跳转目标现在通过红色的闪烁框进行标识。可能的跳转目…

探索Node.js中的node-xlsx:将Excel文件解析为JSON

在Node.js开发中,处理Excel文件是一个常见需求,特别是在需要导入大量数据或生成报表的场景中。node-xlsx 是一个强大的库,它提供了Excel文件的解析和生成功能。本文将深入探讨 node-xlsx 的使用,并通过一个案例演示如何将Excel文件…

蒙特卡洛树搜索

目录 1. 选择(Selection)2. 扩展(Expansion)3. 模拟(Simulation)4. 反向传播(Backpropagation)为什么蒙特卡洛树搜索很厉害?应用实例 蒙特卡洛树搜索介绍 蒙特卡洛树搜索…

【从0到1进阶Redis】哨兵模式

笔记内容来自B站博主《遇见狂神说》:Redis视频链接 小伙伴们可以看一下上一篇我的Redis笔记 —— 【从0到1进阶Redis】主从复制 这样可以更好的理解原理。 一、概述 主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服…

Parallels Desktop 19 for Mac(PD19虚拟机)详细图文安装教程分享

Parallels Desktop 19是一款功能丰富、性能强大且易于使用的虚拟机软件,它可以让您在Mac上同时运行多个操作系统,为您提供更大的灵活性和兼容性。 Parallels Desktop 19 for Mac(PD19虚拟机)下载安装包 Parallels Desktop 19 for Mac(PD19虚拟机)详细图…

在VS2017下FFmpeg+SDL编写最简单的视频播放器

1.下载ShiftMediaProject/FFmpeg 2.下载SDL2 3.新建VC控制台应用 3.配置include和lib 4.把FFmpeg和SDL的dll 复制到工程Debug目录下,并设置调试命令 5.复制一下mp4视频到工程Debug目录下(复制一份到*.vcxproj同一目录,用于调试) 6…

虚拟机的状态更新

文章目录 虚拟机的更新一、检查虚拟机的配置1.已连接状态2. 保证镜像源挂载 二、进行更新三、其余事项 虚拟机的更新 虚拟机的更新是确保系统软件包和库的更新,以获得最新的修复和改进;如果长期没有打开单机或者集群,可以考虑先进行一次更新…

CentOS 停服后,服务器 OS 路在何方?

2024 年 6 月 30 日,CentOS Linux 7 终止其生命周期(EOL),至此 CentOS 全系列版本也已停止维护,属于 CentOS 的时代彻底终结。CentOS 停止维护后,用户将无法获得包括问题修复和功能更新在内的任何软件维护和…

深度学习与神经网络介绍

目录 一:深度学习的概念 二:机器学习和深度学习的区别 1.特征提取: 三:深度学习的应用场景 1.图像识别 2.自然语言处理技术 3.语音技术 四:神经网络的介绍 1.人工神经网络的概念 2.神经元的概念 3.单层神经网…

【论文阅读】《Visual Prompt Tuning》

Abstract. 目前调整预训练模型的工作方式包括更新所有骨干参数,即全面微调。本文介绍了视觉提示调整(VPT),作为大规模视觉变换器模型全面微调的高效替代方案。VPT 从高效调整大型语言模型的最新进展中汲取灵感,只在输…