如何发布一个Vue组件到Npm上?
前端时间做了一个基于Vue的拼图验证组件,因为公司需要,就想着做完之后放到Npm上,方便使用
发布流程如下:
1. 创建一个Npm账号并进行邮箱确认(很重要)
2. 创建一个文件夹,然后 npm init,然后根据你的vue装vue的解析插件,babel转换插件,代码压缩插件,css插件等等...
3. 配置你的package.json文件.
大家可以看一下我这边的一个真实例子.
我是先把我的组件代码进行压缩,转换等...这个可做可不做,但是建议做,我采用的是rollup来构建,
为什么是rollup?
因为rollup相比较于webpack来说,配置相对简单,容易上手,特别适合做组件或者组件库的构建工具.而且也不会有这么多的版本问题.
rollup.config.js
目录结构如下:
我在这里将 src/index.js做为入口文件,然后rollup会根据我们的入口文件去解析代码,最后产出解析后的文件如下:
可以看到 ROLLUP 将我们的文件整合到一起了,因为我这个插件是单独的,所以css样式我就采用了style标签的形式
这里就是style字符串值了,是postcss处理的.
然后继续说一下package.json文件
{
"name": "puzzle-vue2",//插件的名字
"version": "1.0.8",// 版本
"main": "dist/Puzzle-vue2.js",// 入口文件
"license": "MIT",//协议
"author": "aursordev",//作者
"private": false,//是否私有
"keywords": [ // 关键字,npm 搜索用的
"puzzle-vue",
"拼图验证框",
"vue2-puzzle"
],
"scripts": {
"build": "rollup -c"
},
"dependencies": {
"vue": "^2.5.11"
},
"devDependencies": {
"@babel/core": "^7.15.0",
"@babel/preset-env": "^7.15.0",
"@rollup/plugin-babel": "^5.3.0",
"rollup": "^2.56.3",
"rollup-plugin-commonjs": "^10.1.0",
"rollup-plugin-node-resolve": "^5.2.0",
"rollup-plugin-postcss": "^4.0.1",
"rollup-plugin-uglify": "^6.0.4",
"rollup-plugin-vue": "^5.0.1",
"vue-template-compiler": "^2.6.14"
}
}
等一系列处理好之后,就可以在文件夹根目录执行 npm publish
等处理完成后就可以去npm 上下载使用了,
使用方法如下:
最后:.npmignore 文件,就是类似.gitignore文件,贴一下配置:
完工!
如何发布一个Vue组件到Npm上?的更多相关文章
- 自己编写并发布一个Vue组件
自己编写并发布一个Vue组件 1. 几种开源协议的介绍 https://blog.csdn.net/techbirds_bao/article/details/8785413 2.开始编写组件 新建p ...
- 如何创建并发布一个 vue 组件
步骤 创建 vue 的脚手架 npm install -g @vue/cli vue init webpack 绑定 git 项目 cd existing_folder git init git re ...
- 【vue系列之三】从一个vue-pdf-shower,说说vue组件和npm包
前言 从去年年初开始,自己便下决心要写一个vue系列的博客,但时至今日,才写系列的第三篇博客,想来甚是惭愧. 但是慢归慢,每一篇都要保证质量,以及要写出自己的心路历程,防止自己工作中填的坑再让读者走一 ...
- 如何开发和发布一个Vue插件
前言 Vue 项目开发过程中,经常用到插件,比如原生插件 vue-router.vuex,还有 element-ui 提供的 notify.message 等等.这些插件让我们的开发变得更简单更高效. ...
- Laravel 项目中编写第一个 Vue 组件
和 CSS 框架一样,Laravel 不强制你使用什么 JavaScript 客户端框架,但是开箱对 Vue.js 提供了良好的支持,如果你更熟悉 React 的话,也可以将默认的脚手架代码替换成 R ...
- 写一个vue组件
写一个vue组件 我下面写的是以.vue结尾的单文件组件的写法,是基于webpack构建的项目.如果还不知道怎么用webpack构建一个vue的工程的,可以移步到vue-cli. 一个完整的vue组件 ...
- 如何写好一个vue组件,老夫的一年经验全在这了【转】 v-bind="$attrs" 和 v-on="$listeners"
如何写好一个vue组件,老夫的一年经验全在这了 一个适用性良好的组件,一种是可配置项很多,另一种就是容易覆写,从而扩展功能 Vue 组件的 API 来自三部分——prop.事件和插槽: prop 允许 ...
- 一个 VUE 组件:实现子元素 scroll 父元素容器不跟随滚动(兼容PC、移动端)
介绍 我们经常遇到一种情况.当滑动滚动条区域时,子元素滚动条到底部或顶部时就会触发父级滚动条,父级滚动条同理会继续向上触发,直至body容器.这是浏览器默认的滚动行为. 但是很多情况,我们想要子元素滚 ...
- 如何发布一个 TypeScript 编写的 npm 包
前言 在这篇文章中,我们将使用TypeScript和Jest从头开始构建和发布一个NPM包. 我们将初始化一个项目,设置TypeScript,用Jest编写测试,并将其发布到NPM. 项目 我们的库称 ...
- 从零开始开发一个vue组件打包并发布到npm (把vue组件打包成一个可以直接引用的js文件)
自己写的组件 有的也挺好的,为了方便以后用自己再用或者给别人用,把组件打包发布到npm是最好不过了,本次打包支持 支持正常的组件调用方式,也支持Vue.use, 也可以直接引用打包好的js文件, 配合 ...
随机推荐
- yb课堂 搭建node环境和npm安装 《二十六》
搭建node环境和npm安装 什么是NodeJS? Node.js就是运行在服务端得JavaScript 什么是npm? nodejs的包管理工具,可以下载使用公共仓库的包,类似maven包安装分为本 ...
- Python潮流周刊的优惠券和精美电子书(EPUB、PDF、Markdown)
Python潮流周刊从 2023.05.13 连载至今,本周即将发布第 60 期,这意味着我们又要达成一个小小的里程碑啦! 每周坚持做分享,周复一周,这对自己的精力和意志是一项不小的挑战.于是,为了让 ...
- 解决方案 | cad选择集找出包含特定字符串的多行文本
代码如下: 1 # 选择文本中出现特定单词的多行文字 2 # 下面的代码将选择条件定义为文本字符串中出现"The"的任意选项.此示例还演示了选择方法的用法:MtextSelectB ...
- vue小知识~注入provide!
注入表示的是将该组件的相关值,方法,实例向后代组件注入. 祖先元素中定义注入: export default { provide() { return { provideName: provideVa ...
- JMeter 基于脚本实现代码共享
需求描述 需求是这样的:执行某次压测任务时,压测涉及的前端接口,要求携带一个userName请求头,该请求头值为实际用户名经过DES加密后,再采用Base64加密后的值,为此,编写了一段加密代码,发送 ...
- (六)Redis 消息队列 List、Streams
Redis 适合做消息队列吗?有什么解决方案?首先要明白消息队列的消息存取需求和工作流程. 1.消息队列 我们一般把消息队列中发送消息的组件称为生产者,把接收消息的组件称为消费者,下图是一个通用的消息 ...
- docker nginx容器的均衡负载
创建三个docker容器以实现nginx的负载均衡 编写nginx的dockfile [root@docker nginx]# cat Dockerfile FROM nginx RUN echo ' ...
- Jmeter函数助手21-evalVar
evalVar函数用于执行变量表达式. 变量的名称:填入变量的名称name.注意不是引用变量${name} 1.evalVar函数和eval函数的区别:evalVar只能接收变量名称:eval能接收引 ...
- 【Git】Gitee 码云的使用
1.注册.登陆.设置配置 以上步骤省略,不需要太多指示操作 2.配置SSH公钥: 先进入自己的用户目录下面 C:\Users\Administrator\ 然后右键空白位置[Git Bash Here ...
- 【Vue】Re19 Promise
一.概述 Promise是异步编程的解决方案 异步事件的处理: 封装的异步请求函数不能立即获取结果, 通常会传入另外一个函数,在请求成功的时候将数据通过传入的函数回调出去 如果只是一个简单的请求,那么 ...