如何在 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
处理图数据, 安装“Pytorch“ + 图神经网络开源框架“PyG “+ “ogb“使用 "OGB" OSError: [WinError 127] 找不到指定的程序。1.[遇到这类问题往往跟torch安装的工具包(如torch-sparse,torch-scatter,torch-cluster)版本没对应上有关](https://blog.youkuaiyun.com/weixin_42358688/article/details/117433691)2.[OGB使用环境安装与依赖](https://ogb.stanford.edu/docs/home/)Data Loaders3.[torch-geo 阅读详情

相关推荐

HDRP shader 获取阴影(Custom Pass)

Unity:2021.3.0f1 HDRP:12.1.6

LanQ的博客 2097

Vue3组件库项目基础搭建

前端组件库

sanstu的博客 3264

跨模型的 API 调用与集成:使用 Spring AI 构建可移植的 API 代码,支持多个 AI 模型(如 OpenAI、Anthropic 等)的调用

Spring AI 是 Spring 生态系统中的一部分,旨在提供一种简单、可扩展的方式来集成人工智能模型。Spring AI 使得开发者可以使用现有的 Spring 体系结构方便地访问多种 AI 模型和服务,例如 OpenAI、Anthropic、HuggingFace 等。

秋元的博客 2404

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

微信小程序内容安全审核:从API调用到工程化落地的全流程实践

内容安全是互联网应用开发中的基础性技术环节,尤其在用户生成内容(UGC)场景下,它直接关系到平台的合规性与用户体验。其核心原理通常结合了关键词过滤、自然语言处理(NLP)和计算机视觉(CV)等技术,通过AI模型对文本、图像、音频进行多维度风险识别。这项技术的价值在于,它不仅是满足监管要求的必要手段,更是构建健康社区生态、保护品牌声誉、实现产品长期稳定运营的基石,广泛应用于社交、电商、社区论坛等各类UGC平台。本文聚焦于微信小程序生态,深入剖析其官方提供的内容安全解决方案,详细解读如何将文本同步检测与多媒体异

weixin_28622215的博客 452

Synopsys SCL许可证服务器搭建详解:从安装到生成.dat文件

本文详细解析了Synopsys SCL许可证服务器的完整搭建流程,从系统环境准备、SCL安装到生成.dat文件。重点阐述了如何正确获取HOST ID、配置License文件以及调试常见故障,为数字芯片设计工程师提供了一套从零到一的实战避坑指南,确保EDA工具链稳定运行。

weixin_29306011的博客 610

vue3 工程package.json说明

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

qq_41005300的博客 3987

动态对抗Zygisk-IL2CppDumper:Unity游戏安全新策略

本文深入探讨了对抗Zygisk-IL2CppDumper攻击的Unity游戏安全新策略。通过实时内存监控、动态混淆技术和异常行为检测体系,有效防止关键代码被动态提取。文章详细介绍了内存指纹系统、运行时混淆方案和五维特征模型等实用防御手段,帮助开发者提升游戏安全性。

weixin_29325955的博客 305

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

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

长铗归来的博客 4125

OpenLayers源码解析1 Map.js

Map.js 父类:./PluggableMap/PluggableMap 引用:5个模块 ./renderer/Composite.js ./PluggableMap.js ./obj.js ./control.js(控件) ./interaction.js(交互) 主要功能:核心组件,渲染地图 必要参数: view layers target controls和interactions要是未指定,使用默认值 方法:createRenderer()? /** * @module ol/Map */ i

qq_45005996的博客 1898

Unity插件UniWebView实战:UGUI动态调整内嵌网页尺寸与交互优化

本文详细解析了如何在Unity游戏中使用UniWebView插件实现内嵌网页的动态尺寸适配与深度交互。核心在于利用Reference Rect Transform属性,将网页窗口精准绑定至UGUI控件,并随其动态调整。文章进一步探讨了通过消息系统与JavaScript执行实现Unity与网页的双向通信,并提供了加载优化、过渡动画及事件拦截等实用技巧,助力开发者打造无缝、流畅的游戏内网页体验。

earth的博客 276

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

vue3项目常用初始化配置

qq_39253096的博客 1853

OpenHarmony 显示Display驱动全栈解析:DisplayLayer + Gralloc + Gfx 三位一体,打造高性能图形底座

OpenHarmony Display显示驱动模块是系统图形渲染和显示功能的基础组件,负责管理显示设备、图层渲染、内存分配等核心功能。该模块采用HDI(Hardware Driver Interface)设计架构,为上层图形服务提供统一的显示能力接口,实现了显示设备的初始化、图层管理、内存分配与映射、硬件加速等关键功能。DisplayLayer:负责显示图层的管理, 包括图层创建、显示属性设置、图层填充及刷新等操作;

m0_67505153的博客 315

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

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

gitblog_00972的博客 929

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

手把手教你搭建vue3项目

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

weixin_43618130的博客 5万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

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

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

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

余额充值