如何在 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
【每天一个知识点】多视图子空间聚类(Multi-view Subspace Clustering) 本文深入解析了多视图子空间聚类技术,这是一种处理多源异构数据的先进方法。它通过融合多个数据视图(如文本、图像、网络结构)的共识与互补信息,学习统一的潜在子空间表示,从而获得比单一视图更鲁棒、准确的聚类结果。文章详细阐述了其核心思想、主流技术流派(如图融合、共同潜在子空间、张量及深度学习方法),并提供了Python实战代码与调优经验,适用于跨模态检索、生物信息学等多领域复杂数据分析。 阅读详情

相关推荐

STM32G0实战:HAL库与LL库Flash操作避坑指南(附HardFault解决方案)

本文深入剖析了STM32G0系列微控制器在Flash操作中常见的HardFault问题,对比了HAL库与LL库在读写擦除操作上的底层差异与潜在陷阱。文章提供了基于寄存器状态分析的精准调试方法,并给出了经过实战检验的解决方案与健壮的代码框架,帮助开发者有效规避数据丢失与系统崩溃风险。

t8u9v0w1x的博客 730

Vue3组件库项目基础搭建

前端组件库

sanstu的博客 3264

告别低效!用ADS仿真带你一步步搭建一个两路对称Doherty功放(含设计要点)

本文详细介绍了如何使用ADS仿真工具一步步搭建两路对称Doherty功放,涵盖设计要点与优化技巧。通过解析负载调制机制、阻抗变换等核心原理,结合5G基站等应用场景,帮助工程师提升功放效率与线性度。特别针对GaN管件的Doherty功放,在3.5GHz频段实现高效性能。

weixin_31783001的博客 396

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

4、风险管理、信息安全与信息管理的核心原则

本文深入探讨了风险管理、信息安全与信息管理的核心原则,涵盖Risk IT框架、ISO 31000标准以及信息安全与信息管理的关键原则。通过案例分析与实际应用挑战的解析,帮助组织更好地应对数字化时代的风险与安全问题,实现可持续发展。

bread的博客 120

微信小程序 - 最新图片组拖拽排序更换位置功能,类似微信朋友圈九宫格图片的拖动排序效果,微信小程序实现九宫格图片拖拽调换位置,小程序详细实现图像拖曳拖动切换位置排序功能(详细示例代码,一键复制开箱即用

微信小程序,wechat,小程序,图片排序,图像排序,九宫格拖拽排序,拖曳,拖动,拖拽,仿微信朋友圈,朋友圈宫格图片排序,微信朋友圈图片拖动排序效果,实现九宫格图片拖拽,图像拖拽排序组件插件,小程序实现拖拽图片切换图片位置,图片拖动互换位置,图像拖拽切换位置,九宫格图片组合拖动排序,交换九宫格图片的位置,小程序上传图片后,如何实现拖拽排序功能,小程序怎么实现图片拖拽排序,微信小程序图片上传,九宫格拖拽组件,选择图片并拖动_微信小程序图片拖拽,微信小程序长按拖拽排序,图像的拖拽移动,多图拖拽排序功能,实现九宫

✅ 精选推荐文章 4453

vue3 工程package.json说明

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

qq_41005300的博客 3987

MIKE 21 教程 1.5 基于卫星影像绘制河道边界

上一节讲解了如何输入高程数据与绘制网格本节讲解如何根据卫星影像绘制河道边界。在实际项目中,经常遇到河道图纸缺少的情况,此时可以根据卫星影像进行勾勒绘制。常用的地理信息软件均可完成此功能,这里使用大家较为熟悉的ArcGis进行教学(本文默认大家有基础ArcGis操作知识,如有不懂可留言)。

Hello Word 3282

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

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

长铗归来的博客 4125

寒武纪面试——数字IC,数字逻辑岗

面试过程:面试是电话面试,通话时间大致在40分钟左右!面试体验挺不错的。面试的岗位是数字逻辑工程师。本人双非,拿过一个国一(南京FPGA大赛),一个数学建模省二。

FPGA/MATLAB学习教程/源码/项目合作开发 1374

YOLOv9分割改进 ,YOLOv9分割改进主干网络为华为EfficientNet,助力涨点

EfficientNet论文中研究了卷积网络的缩放和,并证明对深度,宽度和分辨率复合缩放的重要性,因此精度和效率更好。为了阐述相关的原理,我们提出了简单有效的复合缩放方法,使得模型缩放具有一定设计准则,同时兼顾了模型的效率。我下文将 YOLOv9 分割模型改进主干网络为 EfficientNet 融合网络结构。论文地址代码地址下文都是手把手教程,跟着操作即可添加成功把环境配置好,数据集处理好,训练基本能成功,创作不易,请帮忙点一个爱心,关注我,带你不挂科!

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 937

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

vue3项目常用初始化配置

qq_39253096的博客 1853

19、多项式基算术:原理与运算详解

本文深入探讨了有限域 $GF(2^m)$ 中的多项式基算术,详细介绍了加法、减法、乘法和平方运算的原理与实现方法。重点分析了多项式基表示形式、模约简技术以及乘法优化策略,如高基数乘法、并行与顺序乘法器设计,并提到了Karatsuba-Ofman算法在减少乘法次数方面的优势。此外,文章还讨论了多项式基算术在密码学、编码理论等领域的应用前景,并展望了未来在高效算法设计与硬件加速方面的研究方向。

yellow的专栏 150

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

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

gitblog_00972的博客 929

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

手把手教你搭建vue3项目

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

weixin_43618130的博客 5万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

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

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

发布一个基于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、付费专栏及课程。

余额充值