一直以来项目都使用他人开发的组件,于是乎自己也想倒腾着做一个,发布到npm 在其他项目里直接使用,这个组件上传和纯js 还是有一定区别的,在这个过程中也遇到了一些小问题,网上找了许多案例,都不是太全面,趁有时间自己记录一下

参考网上大佬案例改装一个适合自己需求的运动的时间刻度

一、项目创建

首选是创建一个项目,这个就不用说了,大家都会

c:> vue create my-project

二、组件编写

在src/components下创建一个TimeAxisAuto.vue

三、全局注册

再建一个indx.js来进行组件全局注册

import Vue from "vue";
import TimeAxisAuto from "./TimeAxisAuto.vue"; const Components = {
TimeAxisAuto
}; Object.keys(Components).forEach(name => {
Vue.component(name, Components[name]);
}); export default Components;

四、配置package.json

其中大致配置

{
"name": "time-axis-auto", // 包名字
"version": "0.1.3", //包版本,x.x.x的格式,符合语义化版本规则
"description": "It is a running timeline component. ", //一些描述信息
"main": "./dist/time-axis-auto.common.js", // 入口文件,这里指定为dist目录下打包生成的js
"author": "dex", //作者信息
"email": "d1236688@163.com", // 邮件地址
"license": "ISC",// 许可证,默认是ISC、有的默认是MIT
"scripts": { // 运行脚本命令
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"distribute": "vue-cli-service build --target lib --name time-axis-auto ./src/components/index.js" // 这里我们使用@vue/cli 3.0自带的打包功能,将项目打包
},
"bugs": {
"url": "https://github.com/dengxiaoning/time-axis-auto.git"
},
}

五、 配置vue.config.js

module.exports = {
publicPath: process.env.NODE_ENV === 'production' ? './' : '/',
css:{ // 这一步配置将css强行内联,否则发布后的组件在使用时不会携带css
extract:false
}
}

publicPath: process.env.NODE_ENV === 'production' ? './' : '/',这步用于修改vue加载资源目录

css:{ // 这一步配置将css强行内联,否则发布后的组件在使用时不会携带css extract:false }

六、 打包发布

好了配置完成后

1. 执行npm run distribute将项目打包
/  Building for production as library (commonjs,umd,umd-min)...

 DONE  Compiled successfully in 2551ms                                                                          18:49:03

-  Building for production as library (commonjs,umd,umd-min)...

 DONE  Compiled successfully in 2713ms                                                                          18:49:03

/  Building for production as library (commonjs,umd,umd-min)...

 DONE  Compiled successfully in 3184ms                                                                          18:49:04

  File                              Size                 Gzipped

  dist\time-axis-auto.umd.min.js    21.79 KiB            11.32 KiB
dist\time-axis-auto.umd.js 44.76 KiB 16.82 KiB
dist\time-axis-auto.common.js 44.28 KiB 16.67 KiB Images and other types of assets omitted.
2. 再执行 npm publish ( 取消发布 npm unpublish --force xxx包名 )

ok 发布成功

直接

 npm install time-axis-auto --save

.vue import 'time-axis-auto' 即可全局使用了

练习案例在线demo https://www.benpaodehenji.com/timeline/

源码地址 https://github.com/dengxiaoning/time-axis-auto.git"

把vue组件发布到npm的更多相关文章

  1. vue-cli3.0 vue组件发布到npm

    一.创建项目 1.vue create xxx (使用的版本是3.1.0) 2.把src目录名称改为examples 3.新建文件夹packages 用来存放组件 4.比如:新建Button组件 in ...

  2. krry-transfer ⏤ 基于 element 的升级版穿梭框组件发布到 npm 啦

    博客地址:https://ainyi.com/81 基于 element ui 的==升级版穿梭框组件==发布到 npm 啦 看过我之前博客的同学或许知道我之前写过关于 element 穿梭框组件重构 ...

  3. Vue系列---【自定义vue组件发布npm仓库】

    自定义vue组件发布npm仓库 参考链接:自定义vue组件发布npm仓库

  4. vue 组件发布记录

    好久没做独立的 vue 组件了,最近突然想把一个常用的 vue 组件打成一个 npm 包,方便使用.好久不用,发现已经忘记环境怎么搭建.翻看以前的组件,才慢慢回想起来,中间还出现些错误.在这记录下开发 ...

  5. 手把手教你封装 Vue 组件并使用 NPM 发布

    Vue 开发插件 我们可以先查看Vue的插件的开发规范 我们开发的之后期望的结果是支持 import.require 或者直接使用 script 标签的形式引入,就像这样: ps: 这里注意一下包的名 ...

  6. 使用Vue CLI 3将基于element-ui二次封装的组件发布到npm

    前言:之前在网上找的好多都是基于vue-cli 2.x的,而使用vue-cli 3的文章比较少,Vue CLI 3 中文文档,所以我在自己尝试的时候把几篇文章结合了一下,调出来了我想要的模式,也就是V ...

  7. 将Vue插件发布到npm的完整记录

    前言 ​ 面对越来越多的组件库,越开越多的ui库,学会发布库已经是前端必须会的事情了,也算是为开源贡献一份力量,在网络上看了一些前者的文章,也算的发布成功了,虽然还存在很多问题,路不积跬步,无以至千里 ...

  8. vue组件调用(用npm安装)

    vue用webpack打包方式新建项目,注意刚开始可以先关闭路由和代码错误检测功能 1.建立了一个Hi.vue的组件 <template> <div>Hi~~{{msg}}-- ...

  9. 自定义Vue组件打包、发布到npm以及使用

    本文将帮助:将自己写的Vue组件打包到npm进行代码托管,以及正常发布之后如何使用自己的组件. 本文讲述的仅仅是最基础的实现,其他复杂的操作需要非常熟悉webpack的相关知识,作者将继续学习. 先附 ...

  10. 【vue系列之三】从一个vue-pdf-shower,说说vue组件和npm包

    前言 从去年年初开始,自己便下决心要写一个vue系列的博客,但时至今日,才写系列的第三篇博客,想来甚是惭愧. 但是慢归慢,每一篇都要保证质量,以及要写出自己的心路历程,防止自己工作中填的坑再让读者走一 ...

随机推荐

  1. MySQL 某一列的值加入到另一列

    0.背景 文件url 文件名 /usr/local/img/goods/1/2021-12-22-e05bb433bc7a451ca5d7cc9d505d8ed8.jpg 酸枣糕.jpg /usr/l ...

  2. UI界面实现SSH登录服务器并执行命令监控

    一.通过paramiko实现SSH远程登录服务器.执行命令并返回信息: 二.通过wxpython实现UI化: 三.代码实现如下: 1)主程序MainUI #coding:utf8 #!/usr/bin ...

  3. NGINX配置SSL支持

    前言 在文章-腾讯云申请免费SSL证书中, 我们已经申请好了SSL证书. 那么现在, 我们就要配置全站SSL了! 这次的工作主要是NGINX的配置, 同时会有一些我的博客本身的配置. 博客本身配置更改 ...

  4. 亚马逊商品页面爬取(使用headers字段).py(亲测有效)

    import requests def getHTMLText(url): try: kv = {'user-agent':'Mozilla/5.0'} # 请求头;指定访问浏览器为Mozilla5. ...

  5. 方差分析3——正交表与正交实验设计(R语言)

    正交试验设计(orthogonal design简称正交设计(orthoplan),是利用正交表(orthogonal table)科学地安排与分析多因素试验的方法,是最常用的试验设计之一.正交表是一 ...

  6. 迁移学习(TSRP)《Improving Pseudo Labels With Intra-Class Similarity for Unsupervised Domain Adaptation》

    论文信息 论文标题:Improving Pseudo Labels With Intra-Class Similarity for Unsupervised Domain Adaptation论文作者 ...

  7. python中socket使用UDP协议简单实现服务端与客户端通信

    UDP为不可靠传输,也就是发送方不关心对方是否收到消息,一般用于聊天软件.但现在的聊天软件虽然使用的是UDP协议,但已从代码层面上解决了丢失信息的问题. 下面使用python代码简单实现了服务端与客户 ...

  8. Python property、setter、deleter

    面向对象封装特点之一就是通过实现好的方法来访问,限制对数据的不合理访问,把对象状态私有化,仅供类的内部进行操作 下方示例,Test方法的number属性类实例的时候传递1,number是一个公开属性, ...

  9. ARL:资产侦察灯塔系统

    资产灯塔,不仅仅是域名收集 功能简介 "挖洞神器"资产安全灯塔(ARL),旨在快速侦察与目标关联的互联网资产,构建基础资产信息库. 协助甲方安全团队或者渗透测试人员有效侦察和检索资 ...

  10. Python 列表的修改、添加和删除元素

    列表修改.添加和删除元素 大多数创建的列表都是动态的,随程序的运行增删元素 修改列表元素 指定列表名和要修改的元素的索引,再指定要修改元素的新值 # 修改列表元素案例 motorcycles = [' ...