当前位置: 首页 > news >正文

基于 vue2 发布 npm包

背景:组件化开发需要,走了一遍发布npm包的过程,采用很简单的模式实现包的发布流程,记录如下。

项目参考:基于vue的时间播放器组件,并发布到npm_timeplay.js_xmy_wh的博客-CSDN博客

1、项目初始化

首先,要创建项目,封装vue的插件要写的是一个简单的vue组件不需要依赖那么多而庞大的配置,所以,这里用简单版本的webapck配置模板:

vue init webpack-simple my-project

然后在在src下创建一个lib文件夹包含index.js和vue-time-play.vue目录结构如下

在index.js中将组件作为vue插件导出

import vueTimePlay from './vue-time-play' // 导入组件
const timePlay = {install (Vue, options) {Vue.component(vueTimePlay.name, vueTimePlay)  // vueTimePlay.name 组件的name属性}
}
export default timePlay // 导出..

 在main.js中引入

import vueTimePlay from './lib/index.js'
Vue.use(vueTimePlay)

2、开发组件

在vue-time-play.vue中编写组件 此组件是基本vue的时间播放器,主要功能是可以按天或者时间播放来切换,并且可以配置速度来切换播放速度。 此处省略 vue-time-play.vue中的代码,请移步到结尾的源码链接查看。

3、修改配置项

修改 webpack.config.js

// 执行环境const NODE_ENV = process.env.NODE_ENV;module.exports = {// 根据不同的执行环境配置不同的入口entry: NODE_ENV == 'development' ? './src/main.js' : './src/lib/index.js',output: {path: path.resolve(__dirname, './dist'),publicPath: '/dist/',filename: 'vue-time-play.js',library: 'vue-time-play', // 指定的就是你使用require时的模块名libraryTarget: 'umd', // 指定输出格式umdNamedDefine: true // 会对 UMD 的构建过程中的 AMD 模块进行命名。否则就使用匿名的 define}

然后npm run build

修改 package.json 文件:

// 发布开源因此需要将这个字段改为 false
"private": false,
// 这个指 当import vueTimePlay from vue-time-play 的时候引入的包
"main": "dist/vue-time-play.js",

查看.npmignore文件,不要忘记把dist文件提交上去

4、发布

4.1  注册npm账号:地址=>npm,按照提示一路走下去即可注册成功。

4.2 注册成功之后,需要在命令行登陆:

npm login

4.3 需要输入账号,密码以及邮箱验证码等,按照提示操作即可。

4.4 发布npm包 

npm publish

发不成功后邮箱会收到通知,并且也可以去npm上查看已经发布成功的包,至此,已经完成一个组件的发布啦。

注意:每次npm publish时需要更改版本号,package.json里的version字段。

5、使用自己的组件

  • 执行命令 

    npm install vue-time-play --save

6、使用过程中注意查看镜像等,可以使用nrm,常用命令:

1.npm install -g nrm   //全局安装
2.nrm use npm    //切换到npm,选中会有选中的状态提示
3.nrm use taobao //切回淘宝镜像

以上是使用vue简单发布一个组件到npm的过程,目前存在一些静态资源找不到的问题,后续解决了更新。

结束

感谢您的阅读。

项目源码 & 文档

欢迎大家安装使用,有任何问题大家可以留言相互交流。

相关文章:

基于 vue2 发布 npm包

背景:组件化开发需要,走了一遍发布npm包的过程,采用很简单的模式实现包的发布流程,记录如下。 项目参考:基于vue的时间播放器组件,并发布到npm_timeplay.js_xmy_wh的博客-CSDN博客 1、项目初始化 首先&a…...

基于Axios完成前后端分离项目数据交互

一、安装Axios npm i axios -S 封装一个请求工具:request.js import axios from axios// 创建可一个新的axios对象 const request axios.create({baseURL: http://localhost:9090, // 后端的接口地址 ip:porttimeout: 30000 })// request 拦截器 // 可以自请求…...

时序预测 | MATLAB实现基于PSO-BiLSTM、BiLSTM时间序列预测对比

时序预测 | MATLAB实现基于PSO-BiLSTM、BiLSTM时间序列预测对比 目录 时序预测 | MATLAB实现基于PSO-BiLSTM、BiLSTM时间序列预测对比效果一览基本描述程序设计参考资料 效果一览 基本描述 MATLAB实现基于PSO-BiLSTM、BiLSTM时间序列预测对比。 1.Matlab实现PSO-BiLSTM和BiLSTM…...

C# 生成唯一ID

1.首先通过nuget安装yitter.idgenerator 下面的三行代码搞定...

python怎么提取视频中的音频

目录 操作步骤 1. 安装MoviePy库: 2. 导入MoviePy库和所需的模块: 3. 提取音频: 可能遇到的问题 1. 编解码器支持: 2. 依赖项安装: 3. 文件路径问题: 4. 内存消耗: 5. 输出文件大小&a…...

学习设计模式之建造者模式,但是宝可梦

前言 作者在准备秋招中,学习设计模式,做点小笔记,用宝可梦为场景举例,有错误欢迎指出。 建造者模式 建造者模式是一种创建型模式,主要针对于某一个类有特别繁杂的属性,并且这些属性中有部分不是必须的。…...

数学建模:变异系数法

🔆 文章首发于我的个人博客:欢迎大佬们来逛逛 变异系数法 变异系数法的设计原理是: 若某项指标的数值差异较大,能明确区分开各被评价对象,说明该指标的分辨信息丰富,因而应给该指标以较大的权重&#xf…...

paddle.load与pandas.read_pickle的速度对比(分别在有gpu 何无gpu 对比)

有GPU 平台 测试通用代码 import time import paddle import pandas as pd# 测试paddle.load start_time time.time() paddle_data paddle.load(long_attention_model) end_time time.time() print(f"Paddle load time: {end_time - start_time} seconds")# 测试…...

探讨uniapp的路由与页面栈及参数传递问题

1首先引入页面栈 框架以栈的形式管理当前所有页面, 当发生路由切换的时候,页面栈的表现如下: 页面的路由操作无非:初始化、打开新页面、页面重定向、页面返回、tab切换、重加载。 2页面路由 uni-app 有两种页面路由跳转方式&am…...

字节一面:你能讲一下跨域吗

前言 最近博主在字节面试中遇到这样一个面试题,这个问题也是前端面试的高频问题,作为一名前端开发工程师,我们日常开发中与后端联调时一定会遇到跨域的问题,只有处理好了跨域才能够与后端交互完成需求,所以深入学习跨域…...

leetcode 563.二叉树的坡度

⭐️ 题目描述 🌟 leetcode链接:https://leetcode.cn/problems/binary-tree-tilt/description/ 代码: class Solution { public:int childFind(TreeNode* root , int& sumTile) {if (root nullptr) {return 0; // 空树坡度为0}int l…...

【第1章 数据结构概述】

目录 一. 基本概念 1. 数据、数据元素、数据对象 2. 数据结构 二. 数据结构的分类 1. 数据的逻辑结构可分为两大类:a. 线性结构;b. 非线性结构 2. 数据的存储结构取决于四种基本的存储方法:顺序存储、链接存储、索引存储、散列存储 3. …...

【附安装包】MyEclipse2019安装教程

软件下载 软件:MyEclipse版本:2019语言:简体中文大小:1.86G安装环境:Win11/Win10/Win8/Win7硬件要求:CPU2.5GHz 内存4G(或更高)下载通道①百度网盘丨下载链接:https://pan.baidu.co…...

poi-tl设置图片(通过word模板替换关键字,然后转pdf文件并下载)

选中图片右击 选择设置图片格式 例如word模板 maven依赖 <!-- java 读取word文件里面的加颜色的字体 转pdf 使用 --><dependency><groupId> e-iceblue </groupId><artifactId>spire.doc.free</artifactId><version>3.9.0</ver…...

[element-ui] el-tree 懒加载load

懒加载&#xff1a;点击节点时才进行该层数据的获取。 注意&#xff1a;使用了懒加载之后&#xff0c;一般情况下就可以不用绑定:data。 <el-tree :props"props" :load"loadNode" lazy></el-tree>懒加载—由于在点击节点时才进行该层数据的获取…...

【C++】使用 nlohmann 解析 json 文件

引言 nlohman json GitHub - nlohmann/json: JSON for Modern C 是一个为现代C&#xff08;C11&#xff09;设计的JSON解析库&#xff0c;主要特点是 易于集成&#xff0c;仅需一个头文件&#xff0c;无需安装依赖 易于使用&#xff0c;可以和STL无缝对接&#xff0c;使用体验…...

Nginx到底是什么,他能干什么?

目录 Ngnix是什么&#xff0c;它是用来做什么的呢&#xff1f; 一。Nginx简介 二&#xff0c;为什么要用Nginx呢&#xff1f; 二。Nginx应用 1.HTTP代理和反向代理 2.负载均衡 Ngnix是什么&#xff0c;它是用来做什么的呢&#xff1f; 一。Nginx简介 Nginx是enginex的简写&…...

如何判断一个java对象还活着

引用计数算法 引用计数器的算法是这样的&#xff1a;在对象中添加一个引用计数器&#xff0c;每当有一个地方引用它时&#xff0c;计数器值就加一&#xff1b;当引用失效时&#xff0c;计数器值就减一&#xff1b;任何时刻计数器为零的对象就是不可能再被使用的。 缺点&#x…...

Go语言基础之结构体

Go语言中没有“类”的概念&#xff0c;也不支持“类”的继承等面向对象的概念。Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性。 类型别名和自定义类型 自定义类型 在Go语言中有一些基本的数据类型&#xff0c;如string、整型、浮点型、布尔等数据…...

前端食堂技术周刊第 96 期:2023 CSS 状态、Nuxt 3.7、TypeScript 5.2、eBay 性能优化、贝塞尔曲线

美味值&#xff1a;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f;&#x1f31f; 口味&#xff1a;冰镇黑乌龙 食堂技术周刊仓库地址&#xff1a;https://github.com/Geekhyt/weekly 大家好&#xff0c;我是童欧巴。欢迎来到前端食堂技术周刊&#xff0c;我们先来看…...

OpenClaw智能书签:用nanobot自动归类收藏网页内容

OpenClaw智能书签&#xff1a;用nanobot自动归类收藏网页内容 1. 为什么需要智能书签 作为一个每天要浏览大量技术文档和行业资讯的开发者&#xff0c;我发现自己陷入了"收藏即学会"的陷阱。Chrome书签栏里堆满了未分类的链接&#xff0c;Notion数据库里散落着零碎…...

2026年03月CCF-GESP编程能力等级认证Scratch图形化编程二级真题解析

本文收录于《Scratch等级认证CCF-GESP图形化真题解析》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 一、单选题(每题 3 分,共 30 分) 第 1 题 在 2026 年春晚的《武 BOT》节目中,一群机器人表演空翻:它们落地后晃一下又能站稳,还会移动保持队形整齐。如果…...

基于CATIA有限元的焊装夹具Base板应力分析与优化设计

1. 为什么焊装夹具Base板需要应力分析&#xff1f; 在汽车制造领域&#xff0c;焊装夹具是确保车身焊接精度的关键设备。其中Base板作为夹具的支撑基础&#xff0c;承受着来自机器人抓手和工件的全部载荷。很多新手工程师常犯的错误是直接套用经验公式设计&#xff0c;结果要么…...

ssm+java2026年毕设私教预约系统【源码+论文】

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于会议管理问题的研究&#xff0c;现有研究主要以传统纸质登记和简单的OA系统为主&#xff0c;专门针对智能化、全流程会议预…...

FPGA调试避坑指南:Vivado ILA采样深度和探针位宽怎么设?资源占用与调试效果的平衡术

FPGA调试实战&#xff1a;ILA采样深度与探针位宽的黄金平衡法则 当你在Artix-7芯片上调试一个包含32位计数器和多状态机的设计时&#xff0c;突然发现ILA吃掉了一半的Block RAM资源&#xff0c;而采样深度却只够捕获5个时钟周期的数据——这种场景是否似曾相识&#xff1f;本文…...

MCP项目笔记六(PluginsLoader)

C 插件加载器&#xff1a;从目录扫描、动态库加载、实例创建&#xff0c;到安全卸载的设计思路与实现细节。一、整体架构概览 这段代码实现了一个完整的运行时插件系统&#xff08;Runtime Plugin System&#xff09;。所谓插件系统&#xff0c;就是让主程序在编译完成后&#…...

三步掌握Dark Reader:从入门到精通的护眼浏览解决方案

三步掌握Dark Reader&#xff1a;从入门到精通的护眼浏览解决方案 【免费下载链接】darkreader Dark Reader Chrome and Firefox extension 项目地址: https://gitcode.com/gh_mirrors/da/darkreader Dark Reader是一款能够为任何网站启用深色模式的浏览器扩展&#xff…...

开源bert-base-chinese应用:中文社交媒体谣言检测的语义表征建模

开源bert-base-chinese应用&#xff1a;中文社交媒体谣言检测的语义表征建模 1. 引言&#xff1a;当谣言遇上AI 你有没有在社交媒体上刷到过一些真假难辨的消息&#xff1f;比如“某地出现不明病毒”、“某食品含有致癌物”&#xff0c;这些信息往往传播迅速&#xff0c;让人…...

避坑指南:Prescan8.5安装常见报错解决方案(含MATLAB集成配置)

Prescan8.5安装避坑指南&#xff1a;7类典型报错与MATLAB集成深度解析 当仿真工程师第一次打开Prescan8.5安装包时&#xff0c;很少有人能预料到接下来可能遭遇的"技术迷宫"。作为自动驾驶仿真领域的重要工具&#xff0c;Prescan的安装过程就像它的功能一样复杂——从…...

3000 字深度拆解:Paperxie AI 期刊写作界面全解析 —— 科研人必看的 “投刊效率密码”

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/期刊论文https://www.paperxie.cn/ai/journalArticleshttps://www.paperxie.cn/ai/journalArticles 一、引言&#xff1a;科研人的投稿困局&#xff0c;藏在每一个被忽略的界面细节里 当科研人熬过无数个深…...