1.环境准备

安装node,npm,@vue/cli

2.初始化项目

用@vue/cli创建新项目

vue create mtest-ui

删除public,main.js,App.vue等无关文件,新增packages文件夹存放自己的vue组件

这里我写了一个actionsheet的vue组件放到packages文件夹中

并且在src目录中新增了个js,目录像这样:

其中lib目录是后续打包生成的先不用管

其中index.js是为了把packages中的组件提供一个统一入口来import

代码如下:

import showActionSheet from './packages/actionsheet/index';
// ...如果还有话继续添加 const components = [
showActionSheet,
// ...如果还有的话继续添加
] const install = function (Vue) {
components.map(component => {
Vue.component(component.name, component);
})
} /* 支持使用标签的方式引入 */
if (typeof window !== 'undefined' && window.Vue) {
install(window.Vue);
} export default {
install,
showActionSheet
// ...如果还有话继续添加
}

3.配置修改

3.1修改package.json

将private选项设置为false,这样别人才能使用你的npm包

scripts中新增:

"lib": "vue-cli-service build --target lib --name mtest-ui --dest lib ./src/index.js"

设置import该npm包时查询的入口文件

"main": "lib/mtest-ui.umd.min.js",

运行以下命令即可生成打包后的各个构建版本的文件。

npm run lib

生成的各个构建版本文件:

构建步骤就完成了。

4.npm发布

没有npm账号的先注册账号

npm adduser

然后登陆

npm login

发布

npm publish

注意:发布的包只能在24个小时内撤销,并且要加上--force参数(npm官方不建议撤销)

npm unpublish --force

包的升级:

在package.json中修改版本号并且重新npm publish就可以了

用@vue/cli发布npm包的更多相关文章

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

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

  2. 不会发布npm包?进来看看?

    前言 npm(Node Package Manager),一个Node的包管理器,平时我们常用的公共模块(插件)或者叫做包大多都放在上面,所以接下来要封装的插件,我们就简单称它为npm包,本文从就从这 ...

  3. 使用Vue-cli3.0创建的项目,如何发布npm包

    使用Vue-cli3.0创建的项目,如何发布npm包 在使用vue进行项目开发时,如果我们想要发布一个包,有时候会有点迷糊,不知道应该怎么修改脚手架的默认设置.这里记录一下一些常见的操作. 创建ind ...

  4. 创建并发布npm包

    1.npm官网创建npm账户 npm网站地址:https://www.npmjs.com/ npm网站注册地址:https://www.npmjs.com/signup 2.命令行工具登录npm np ...

  5. 使用cnpm搭建私有NPM仓库 发布npm包

    关于如何使用cnpm搭建私有的npm仓库看这里→ http://blog.fens.me/nodejs-cnpm-npm/ 我本人还没有机会真正实践操作过,公司的npm仓库是我老大搭建的,我这里仅仅记 ...

  6. 前端组件用 Scope 发布 npm 包的方法

    1.引言 多人.多组织或多组件发布 npm 包到同一个仓库时,可能出现命名冲突问题. 为了解决这个问题,npm 引入了“scope”(范围)概念. 在 Angular 项目中,我们通常可以看到“@an ...

  7. 基于vue组件,发布npm包

    亲测好用,如出错,请留言 1.项目初始化 使用vue脚手架创建,但vuecli太重,我们使用简单的工程脚手架进行处理,输入命令 vue init webpack-simple my-project n ...

  8. 使用vuecli3发布npm包

    一.使用vuecli3创建项目 vue create svgicon 二.修改目录,开发组件前的准备 把src目录改为examples作为查看组件的演示目录,新建packages目录作为组件编写的目录 ...

  9. node学习笔记8——发布npm包

    1.注册一个npm账号: 2.在控制台输入 npm login: 依次输入你的账号信息,可通过 npm whoami 来验证是否登录成功 3.初始化包,控制台输入 npm init: 完成之后,可以看 ...

随机推荐

  1. 策略模式(Strategy

    Strategy 无论什么程序,其目的都是解决问题.而为了解决问题,我们又需要编写特定的算法.使用Strategy模式可以整体地替换算法的实现部分.能够整体地替换算法,能让我们轻松地以不同的算法去解决 ...

  2. 一个经典的PHP文件上传类

    需求分析如下: (1)支持单个文件上传 (2)支持多个文件上传 (3)可以指定保存位置 可以设置上传文件允许的大小和类型 可以选择重命名和保留原名 <!-- 设计一个经典文件上传类 需求分析 ( ...

  3. Helvetic Coding Contest 2016 online mirror C1

    Description One particularly well-known fact about zombies is that they move and think terribly slow ...

  4. 判断是pc端登录还是移动端登录

    java判断 https://blog.csdn.net/qq_32657581/article/details/71405838 https://zhidao.baidu.com/question/ ...

  5. Jmeter4.0---- HTTP请求默认值(15)

    1.说明 在线程组中,添加”HTTP请求默认值”,并填写 协议,服务器名称/IP ,端口号,编码等 ,之后该线程组中的所有请求,可以不用填写这几项,启动后会直接调用”HTTP请求默认值”中的数据,方便 ...

  6. jquery——幻灯片(只动一屏)

    制作天天生鲜的幻灯片部分 贴了全部代码: main.html: <!DOCTYPE html> <html lang="en"> <head> ...

  7. bzoj 3732: Network 树上两点边权最值

    http://www.lydsy.com/JudgeOnline/problem.php?id=3732 首先想到,要使得最长边最短,应该尽量走最短的边,在MST上. 然后像LCA那样倍增娶个最大值 ...

  8. POJ 3304 Segments 判断直线和线段相交

    POJ 3304  Segments 题意:给定n(n<=100)条线段,问你是否存在这样的一条直线,使得所有线段投影下去后,至少都有一个交点. 思路:对于投影在所求直线上面的相交阴影,我们可以 ...

  9. sourceInsight4 破解笔记(完美破解)

    https://www.cnblogs.com/Napoleon-Wang/p/6706773.html 时隔好多年,sourceinsight4以迅雷不及掩耳之势的来了.与3.5相比,sourcei ...

  10. ElasticSearch 全文检索— ElasticSearch 安装部署

    ElasticSearch 规划-集群规划 ElasticSearch 规划-集群规划 ElasticSearch 规划-用户规划 ElasticSearch 规划-目录规划 ElasticSearc ...