IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 如何在 npm 上发布一个 vue-cli 构建 Vue3+TypeScript 的项目? -> 正文阅读

[JavaScript知识库]如何在 npm 上发布一个 vue-cli 构建 Vue3+TypeScript 的项目?

一、变更目录结构名称

首先我们看到的是一个新建好的 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
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-21 15:16:46  更:2021-08-21 15:18:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 13:06:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码