如何在 npm 上发布一个 vue-cli 构建 Vue3+TypeScript 的项目?

typescript创建vue项目 第一步【下载最新版本@vue/cli】 npm i -g @vue/cli Microsoft Windows [版本 10.0.18362.1082] (c) 2019 Microsoft Corporation。保留所有权利。 C:\Users\Lenovo\Desktop\1910-高级程序设计\项目>vue create ts-vue Vue CLI v4.5.6 ? Please pick a preset: Manually select features ? Check the f 阅读详情

一、变更目录结构名称

首先我们看到的是一个新建好的 vue3 项目结构
在这里插入图片描述

1.1、新增packages文件夹用于存放开发的组件。

在这里插入图片描述

二、开始开发组件。

在packages中新建一个这样的目录结构,因为我这边配置的css预编译语言是scss 也可根据选择自己配置less,stylus。
在这里插入图片描述
首先我们先找到对应的Button中的index.ts

// packages/Button/index.ts

// 引入组件,组件需要声明 name
import Button from './index.vue'

// 为了单个组件按需引入,所以我们也给组件添加一个install方法
Button.install = function (Vue: any) {
  Vue.component(Button.name, Button)
}

export default Button

随即我们找到对应的packages中的index.ts


// 导入组件
import tbButton from './Button/index'

// 用于遍历注册  这个tbButton一定要是我们对应匹配的组件 name
const components = [tbButton]
// install 方法:因为 Vue.use 的时候找的就是install方法
const install: any = function (Vue: any) {
  if (install.installed) return
  install.installed = true
  // 注册全局组件
  components.map((component) => {
    Vue.component(component.name, component)
  })
}

if (typeof window !== 'undefined' && (window as any).Vue) {
  install((window as any).Vue)
}

export default {
  // 导出的对象需拥有 install 方法
  install,
  // 组件列表
  tbButton
}

三、使用组件。

3.1、在main.ts中写入组件。

import { createApp } from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";

import Xiaoxiannan from "../packages/index";
const app = createApp(App);
app.use(Xiaoxiannan);
app.use(store).use(router).mount("#app");

在这里插入图片描述
页面效果随即也就出现了
在这里插入图片描述

四、如何将项目打包?

那么好这个时候我们的组件也就开发好了,我们如何打包,然后发布到 npm 方便大家使用呢?

4.1、配置 package.json 打包初始化。

首先我们打开package.json
添加如下组件信息

name: 包名,该名不能和已有的名称冲突,

version: 版本号,不能和历史版本号相同,

description: 介绍声明,

main: 打包文件,指向编译后的包文件,

private:是否私有,需要修改为 false 才能发布到 npm;

license:开源协议。

author:作者;

在这里插入图片描述

4.2、在package.json文件scripts标签中新增两个命令。

在这里插入图片描述

    "lib": "vue-cli-service build --target lib --name tinkerbell-ui-next --dest lib packages/index.ts",
    "go": "npm publish --access=public"

第一个lib对应的也就是vue文档给出的库打包命令
在这里插入图片描述

targetnamedestentry
lib 开启打包库打包后的包文件名打包指向目录打包入口

这个时候我们就可以在终端执行 npm run lib 命令打包
在这里插入图片描述

五、推送项目到npm。

首先我们需要在文件根目录创建一个 .npmignore 文件,他的作用与.gitignore是一样的
在这里插入图片描述

.DS_Store
node_modules/
src/
packages/
public/
vue.config.js
babel.config.js
*.map
*.html

# local env files
.env.local
.env.*.local

# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw*

在之后如果原先 npm 更改过淘宝镜像 那么需要变更回原有的 npm 镜像

npm config set registry http://registry.npmjs.org 

再有我们就可以根据 npm 官网进行注册账号,如果原来没有账号的话

用户注册好账户后我们就可以使用

npm login

输入对应的 npm 账号密码,进行登录

在之后我们就可以使用 我们早先在 package.json 文件scripts标签中新增的go指令进行上传

npm run go
stm32F103定时器使用方法 文章目录1、STM32的Timer简介2、普通定时器TIM2-TIM52.1 时钟来源2.2 计数器模式2.3 编程步骤3、程序源代码4、总结 1、STM32的Timer简介 STM32中一共有11个定时器,其中2个高级控制定时器,4个普通定时器和2个基本定时器,以及2个看门狗定时器和1个系统嘀嗒定时器。其中系统嘀嗒定时器是前文中所描述的SysTick,看门狗定时器以后再详细研究。今天主要是研究剩下的8个定时器。 其中TIM1和TIM8是能够产生3对PWM互补输出的高级登时其,常用于三相电机的驱动,时钟 阅读详情

相关推荐

TensorFlow GPU版本安装步骤-Windows系统

本文由在Windows下安装TensorFlow GPU版本教程-优快云等整理得到。 目录 1、确认显卡是否支持CUDA 1.1 查看显卡信息 打开“设备管理器”,查看显卡信息,如下图所示: 由上图知,本电脑的显卡为NVIDIA Quadro P400. 1.2 查看支持CUDA的显卡 网址:https://developer.nvidia.com/cuda-gpus 经查询可知,该显卡支持CUDA,如下图所示: 2、安装CUDA 2.1 下载CUDA 网址:https://developer.nvi

x_lingyun的专栏 764

Vue3组件库项目基础搭建

前端组件库

sanstu的博客 3264

【AAAI2025】【小目标检测】FBRT-YOLO:更快速、更优的实时航拍图像检测方法

FBRT-YOLO是一种新型实时航拍图像检测方法,针对小目标检测的精度与效率平衡问题提出创新解决方案。该方法通过两个轻量级模块显著提升性能:特征互补映射模块(FCM)将浅层空间位置信息深度整合至网络深层,缓解信息失衡;多核感知单元(MKP)采用多尺度卷积增强多目标感知能力。实验表明,在VisDrone、UAVDT和AI-TOD数据集上,FBRT-YOLO在检测精度和速度方面均优于现有实时检测器,特别适用于资源受限的飞行设备。该模型通过精简网络结构,在保持高性能的同时降低了计算负担,为航拍实时检测提供了高效解

weixin_44184852的博客 2900

vue3源码学习2:package目录介绍

vue:提供给外部使用的完整版本,包括打包后的编译时、运行时、内容,入口。compiler-dom:编译时-针对浏览器Dom的实现;compiler-sfc:编译时-SFC单文件组件的实现;compiler-core:编译时-核心包,与平台无关;runtime-dom:运行时-针对浏览器Dom的实现;runtime-core:运行时-核心包,与平台无关;server-renderer:服务端渲染的实现;compiler-ssr:编译时-服务端渲染;runtime-test:运行时-测试工具;

liuminwithsmile的博客 224

Matlab实战:用递归最小二乘法(RLS)搞定动态系统参数辨识(附完整代码)

本文通过Matlab实战,详细介绍了如何利用递归最小二乘法(RLS)进行动态系统参数辨识。文章从理论优势切入,提供了完整的仿真数据生成、RLS算法核心实现代码,并对参数收敛过程、预测误差及不同遗忘因子的影响进行了可视化分析与性能评估,为工程实践提供了清晰的指南。

weixin_29035405的博客 503

保姆级教程:用Protege 5.5.0从零构建你的第一个知识图谱(附实战案例文件)

本文提供了一份详细的Protege 5.5.0使用指南,从零开始构建知识图谱。涵盖环境配置、本体结构设计、实例填充到可视化展示的全流程,特别适合初学者快速掌握知识建模技术。通过实战案例演示,帮助读者理解如何定义类、属性及建立实例关系,是学习知识图谱构建的实用教程。

weixin_42548816的博客 554

vue3 工程package.json说明

vue3 package说明 通过整理package.json文件,梳理出来了后续要了解的相关知识有:

qq_41005300的博客 3987

SpringBoot一次请求中缓存数据,请求结束就清除的4种方法,你会几种?

通过以上四种方法,你可以在 SpringBoot 的一次请求中缓存数据,并在请求结束后自动清除这些缓存数据。使用 ThreadLocal:适用于需要跨多个方法调用的缓存数据,灵活性高,但需要注意内存泄漏问题。使用 AOP:适用于全局性的缓存管理,代码更加优雅,但需要对 AOP 有一定的了解。使用 ServletRequestListener:适用于简单的请求生命周期管理,配置简单,但功能相对有限。使用 HttpServletRequest 的 setAttribute 和 getAttribute。

java专栏 1295

VUE3照本宣科——package.json与vite.config.js

VUE3照本宣科——package.json与vite.config.js 一、package.json;二、vite.config.js;三、VUE3照本宣科系列总结

长铗归来的博客 4125

Untiy之如何实现AI+MR (Pico4u 相机推流MR画面给Server做实时AI图像识别)

本文介绍了基于Pico4U企业版开发AI+MR应用的实现方案。文章详细说明了硬件准备步骤,包括购买企业版设备、申请相机权限和注册管理平台。重点讲解了Unity开发中获取摄像头画面的两种技术方案:通过Overlay直接渲染到Android Surface,或使用API获取图像数据转换为Texture。提供了完整的代码示例和权限配置说明,并揭示了底层通过JNI调用Android原生API的技术原理。该方案适用于带电操作等实习场景,可提升安全性和学习趣味性。

TxNet 1338

PD详解 扩展消息——Source_Capabilities_Extended Message

PD的协议层分为控制消息,数据消息还有扩展消息,今天大师匈讲一下扩展消息中的source_cap_extended。这个消息在扩展消息中算是比较关键的东西。 扩展消息中的source_cap_extended 大师匈先上图,然后逐一解释; 上面的图表说了source_cap_ext中包含了哪些内容。 我们注意到在source_cap扩展消息中是以字节为单位的,并不是像source_cap中以一个object为单位,当然有注意到PD标准spec中说明的扩展消息的话,那里有说明,在header之后的字节

大师匈的博客 3516

vue3项目实战(二)--引入常用依赖

vue3项目常用初始化配置

qq_39253096的博客 1853

Hermes 教程 03:Skills 系统

摘要:Hermes Skills是一种自我改进机制,可将解决问题的经验保存为可复用技能文档。v0.13.0版本遵循agentskills.io开放标准,与Claude Skills互通。技能创建流程包括发现问题、创建技能文件、加载使用和优化更新四个阶段。系统提供技能检索和自维护机制(Curator),支持技能媒体路由和多种管理命令。内置技能涵盖开发调试、创意头脑风暴等场景,通过积累技能使Hermes更适应用户需求。

程序猿_三产 728

vue-sfc-rollup:快速构建可发布Vue组件的终极指南

vue-sfc-rollup是一款CLI模板工具,能快速搭建Vue单文件组件(SFC)或组件库的编译环境,帮助开发者轻松将组件发布到npm。尽管该项目已被标记为 deprecated,但对于需要快速上手组件打包的开发者来说,其简洁的脚手架和配置仍具有实用价值。 ## 为什么选择vue-sfc-rollup? vue-sfc-rollup的核心优势在于**零配置快速启动**。它自动生成必要的构建

gitblog_00972的博客 929

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

手把手教你搭建vue3项目

使用VUE3开发很久了,但一直没进行总结和记录,忙里偷闲整理搭建一套VUE3项目,正好记录一下,按照我的教程让你开启vue3之旅吧!

weixin_43618130的博客 5万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

vue cli4构建基于typescript的vue组件并发布到npm

基于vue cli创建一个vue项目   首先安装最新的vue cli脚手架,   npm install --global @vue/cli npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.13 (node_modules\@vue\cli\node_modules\fsevents): npm WARN notsup...

邹玉杰(邹琼俊)的专栏 270

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

发布一个基于typescript实现的包到npm

文章目录概述目的内容步骤使用vue-cli3创建一个typescript工程 概述 目的 typescript作为未来前端开发的主流语言,在前端开发的过程中扮演着越来越重要的角色。如果有的同学平时的主要开发内容都是处理业务逻辑,那么可能没有那么容易体会到typescript带来的好处,如果有的同学经常会造一些“轮子”,也就是一些复用性比较强的库(工具函数库或者组件库),那么typescript绝对...

martsforever的博客 3688

vue-cli3项目npm run build --report生成分析图

vue-cli3下的typescript项目,在build时想要生成分析报告进行性能优化。 package.json命令如下: "scripts": { "dev": "vue-cli-service serve --mode dev", "serve": "vue-cli-service serve --mode dev", "build": "vue-cli-service build --mode prod", "lint": "vue-cli-service.

会点php的前端小渣渣 1万+

如何用Vue CLI 创建 Vue 项目

本文详细介绍了使用Vue CLI创建Vue项目的完整步骤:1. 安装Node.js和npm环境;2. 全局安装Vue CLI;3. 通过vue create命令创建项目4. 启动项目并访问开发服务器;适合新手快速上手Vue项目开发。

如果能帮助你,我深感荣幸 1217

用Vue-cli从头搭建项目

cli 顾名思义,脚手架的意思。通过一些命令行工具,帮你配置好项目开发运行环境,打包全过程,最后只关注你的逻辑代码部分。基于webpack.

Army-海军的博客 1万+

vue-cli3+ts创建项目(超详细)

没有摘要,直接来吧

qq_32754575的博客 8591

八、vue-cli搭建vue3项目

VUE3 https://v3.cn.vuejs.org/guide/installation.html 使用 vue-cli 创建 对于 Vue 3,你应该使用 npm 上可用的 Vue CLI v4.5 作为 @vue/cli。 yarn global add @vue/cli # 或 npm install -g @vue/cli 查看版本:vue --version E:\mysjc> vue --version @vue/cli 4.5.13 E:\mysjc> 开始搭

Mr丶Yang 2066

vue+typescript构建项目

使用vue2开发项目2年了,那个时候typescript还没有流行,一晃2年过去了,现在已经vue3+typescript大行其道了,所以打算还是把自己的项目升级一下。 第一步:...

Albert_yin的博客 805

使用vue cli3搭建,Vue3+TypeScript

Vue-cli3 + TypeScript

qq_36024028的博客 793

npm创建Vue3项目

创建最新版的Vue项目,已经不推荐使用CLI构建方式了。

不做菜虚困的博客 1104

vue cli3 创建typescript项目

一、创建项目(基于cli3+) --若cli版本不对,请卸载后重新安装 命令行:vue create <name> 安装的自定义选项,查看下图 二、安装后,配置项目的eslint+prettier 1、配置.prettierrc.js 代码检查工具选择了Eslint+Prettier时,ESlint与Prettier相冲突的配置项会被关闭,采用的是Prettie...

yijun_zeng的博客 995
上一篇: 如何在H5移动端页面中调起手机拨打电话功能?
下一篇: vue3 props 如何接受多个类型?
归来巨星
归来巨星 新星创作者: 前端开发技术领域 新星创作者: 前端开发技术领域
博客等级 码龄7年 5391粉丝 95原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

归来巨星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值