教程:基于Verdaccio搭建一个私有化 Npm 库, 并上传本地Vue组件库

本文主要是介绍教程:基于Verdaccio搭建一个私有化 Npm 库, 并上传本地Vue组件库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

教程:基于Verdaccio搭建一个私有化 Npm 库, 并上传本地Vue组件库

开发环境:
1、Node.js (v12.18.3)
2、Vue CLI (v4.5.12)
3、Verdaccio (v4.12.0)

一、创建Vue项目

可以自行使用vue CLI (3.x以上)或其他IDE来创建新的vue 3项目。

1、安装vue cli。

  使用命令行安装: npm install -g @vue/cli

   (注意:先把npm的源设置为淘宝源)

2、创建vue项目。

  (1)使用vscode打开一个空的文件夹。

  (2)在终端输入:vue create my-app

     选择默认 vue2 并敲击回车(vue 3也可以)


在这里插入图片描述

在这里插入图片描述

3、运行。

  (1)在终端输入:cd my-app
  (2)在终端输入:yarn serve

在这里插入图片描述
在这里插入图片描述

二、搭建私有化 Npm 库

1、安装verdaccio

  在终端输入: npm install -g verdaccio

2、运行

  在终端输入: verdaccio

在这里插入图片描述
在这里插入图片描述

三、上传组件库

1、修改vue项目的包结构

   将src文件夹重命名为examples(存放测试用例).
   在项目根目录下新建packages(存放组件库代码)

在这里插入图片描述

2、修改vue.config.js文件

   在项目根目录下新建一个vue.config.js文件,内容如下:

// vue.config.js
const path = require('path')
function resolve (dir) {return path.join(__dirname, dir)
}module.exports = {// 修改 入口文件夹为 pagespages: {index: {entry: 'examples/main.js',template: 'public/index.html',filename: 'index.html'}},chainWebpack: config => {// 设置文件夹别名config.resolve.alias.set('@', resolve('./examples'))  // 注意路径不能为 __dirname + './example'这种形式.set('~', resolve('./packages'))// 设置编译规则config.module.rule('js').include.add(resolve('./packages')).end().use('babel').loader('babel-loader').tap(option => option)}}

3、组件库示例代码

   (1)在 /packages 下创建:baseInput文件夹、index.js。
   (2)在 /packages/baseInput 下创建:src文件夹、index.js。
   (3)在 /packages/baseInput/src 下创建:baseInput.vue。
在这里插入图片描述

  (4)代码如下:
----> /packages/baseInput/src/baseInput.vue

<template><div>baseInput: <input v-model="msg"/></div>
</template>
<script>
export default {name: 'baseInput',data () {return {msg: 'i am a component.'}}
}
</script>

----> /packages/baseInput/index.js

import baseInput from './src/baseInput.vue'baseInput.install = function(Vue) {Vue.component(baseInput.name, baseInput)
}
export default baseInput

----> /packages/index.js

import baseInput from './baseInput'const install = function (Vue) {if (install.installed) return// 注册组件Vue.use(baseInput)install.installed = true
}export default {install,baseInput
}

4、测试组件

   (1)在/examples/main.js文件中注册组件:

// /example/main.js
import baseInput from '~'
Vue.use(baseInput)

   (2)在/examples/App.vue文件中使用组件:<baseInput></baseInput>
      启动项目,如果页面出现输入框,则表示组件使用正常。

5、修改package.json

   version 改为 0.1.1
   private 改为 true
   main 设置为 packages/index.js(这是外界引入的入口)

{"name": "my-app","version": "0.1.1",			// 版本号改为: '0.1.1'"private": false,				// 改为 false"main": "packages/index.js",	// 外界引入文件入口设为 packages/index.js...
}

6、上传到私有npm库

   (1)终端输入:npm adduser --registry http://localhost:4873

   按照提示输入完毕。

   (2)终端输入:npm publish --registry http://localhost:4873

在这里插入图片描述

四、测试组件库

1、yarn安装

   终端输入:yarn add my-app --registry http://localhost:4873

2、测试组件

   修改example/main.js文件:

// example/main.js
// - import baseInput from '~'
+ import baseInput from 'my-app'
Vue.use(baseInput)

   启动项目。出现输入框。成功!

在这里插入图片描述

这篇关于教程:基于Verdaccio搭建一个私有化 Npm 库, 并上传本地Vue组件库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/601267

相关文章

VScode连接远程Linux服务器环境配置图文教程

《VScode连接远程Linux服务器环境配置图文教程》:本文主要介绍如何安装和配置VSCode,包括安装步骤、环境配置(如汉化包、远程SSH连接)、语言包安装(如C/C++插件)等,文中给出了详... 目录一、安装vscode二、环境配置1.中文汉化包2.安装remote-ssh,用于远程连接2.1安装2

vscode保存代码时自动eslint格式化图文教程

《vscode保存代码时自动eslint格式化图文教程》:本文主要介绍vscode保存代码时自动eslint格式化的相关资料,包括打开设置文件并复制特定内容,文中通过代码介绍的非常详细,需要的朋友... 目录1、点击设置2、选择远程--->点击右上角打开设置3、会弹出settings.json文件,将以下内

四种Flutter子页面向父组件传递数据的方法介绍

《四种Flutter子页面向父组件传递数据的方法介绍》在Flutter中,如果父组件需要调用子组件的方法,可以通过常用的四种方式实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录方法 1:使用 GlobalKey 和 State 调用子组件方法方法 2:通过回调函数(Callb

Vue项目中Element UI组件未注册的问题原因及解决方法

《Vue项目中ElementUI组件未注册的问题原因及解决方法》在Vue项目中使用ElementUI组件库时,开发者可能会遇到一些常见问题,例如组件未正确注册导致的警告或错误,本文将详细探讨这些问题... 目录引言一、问题背景1.1 错误信息分析1.2 问题原因二、解决方法2.1 全局引入 Element

详解如何在React中执行条件渲染

《详解如何在React中执行条件渲染》在现代Web开发中,React作为一种流行的JavaScript库,为开发者提供了一种高效构建用户界面的方式,条件渲染是React中的一个关键概念,本文将深入探讨... 目录引言什么是条件渲染?基础示例使用逻辑与运算符(&&)使用条件语句列表中的条件渲染总结引言在现代

详解Vue如何使用xlsx库导出Excel文件

《详解Vue如何使用xlsx库导出Excel文件》第三方库xlsx提供了强大的功能来处理Excel文件,它可以简化导出Excel文件这个过程,本文将为大家详细介绍一下它的具体使用,需要的小伙伴可以了解... 目录1. 安装依赖2. 创建vue组件3. 解释代码在Vue.js项目中导出Excel文件,使用第三

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

Window Server创建2台服务器的故障转移群集的图文教程

《WindowServer创建2台服务器的故障转移群集的图文教程》本文主要介绍了在WindowsServer系统上创建一个包含两台成员服务器的故障转移群集,文中通过图文示例介绍的非常详细,对大家的... 目录一、 准备条件二、在ServerB安装故障转移群集三、在ServerC安装故障转移群集,操作与Ser

windos server2022的配置故障转移服务的图文教程

《windosserver2022的配置故障转移服务的图文教程》本文主要介绍了windosserver2022的配置故障转移服务的图文教程,以确保服务和应用程序的连续性和可用性,文中通过图文介绍的非... 目录准备环境:步骤故障转移群集是 Windows Server 2022 中提供的一种功能,用于在多个

龙蜥操作系统Anolis OS-23.x安装配置图解教程(保姆级)

《龙蜥操作系统AnolisOS-23.x安装配置图解教程(保姆级)》:本文主要介绍了安装和配置AnolisOS23.2系统,包括分区、软件选择、设置root密码、网络配置、主机名设置和禁用SELinux的步骤,详细内容请阅读本文,希望能对你有所帮助... ‌AnolisOS‌是由阿里云推出的开源操作系统,旨