自定义Vue组件打包、发布到npm及使用教程


Posted in Javascript onMay 22, 2019

本文将帮助:将自己写的Vue组件打包到npm进行代码托管,以及正常发布之后如何使用自己的组件。

本文讲述的仅仅是最基础的实现,其他复杂的操作需要非常熟悉webpack的相关知识,作者将继续学习。

按照大佬文中写的一步步操作,够细心的话基本可以一步到位。下面总结一下发布步骤:

1. 利用Vue的脚手架新建一个简易版的Vue项目my-project:

vue init webpack-simple my-project -> cd my-project -> npm i -> npm run dev

2. 编写组件:

src下新建myPlugin文件夹用于存放所以开发的组件 -> 为每一个组件创建一个文件夹,其中存放一个vue组件文件和一个index.js配置文件 -> 在myPlugin下的最外层创建一个入口配置文件 -> 为每个人vue组件文件中加上一个name属性

3. 测试组件:

在app.vue中测试一下自己的组件可不可以用

4. 编写配置文件

为刚刚加入的每个组件文件夹中的index.js放入如下代码:(其中ldcPagination为组件名)

import ldcPagination from './index.vue';
ldcPagination.install = Vue => Vue.component(ldcPagination.name, ldcPagination);//.name就是开始说的vue文件暴露出来的name名,ldcPagination整个组件
export default ldcPagination;

为myPlugin下index.js放入如下代码:(其中ldcPagination为组件名,多个组件直接在components数组中加入并在最后输出出来就行)(引入的公共样式文件等都可以放这个文件中)

import ldcPagination from './Pagination/index.js';
const components = [
 ldcPagination
]
const install = function(Vue, opts = {}) {
 components.forEach(component => {
  Vue.component(component.name, component);
 });
}
if (typeof window !== 'undefined' && window.Vue) {
 install(window.Vue);
}
export default {
 install,
 ldcPagination
}

5. 改写webpack.config.js配置文件

将其中的输入输出换成如下代码:

var path = require('path')
var webpack = require('webpack')
const NODE_ENV = process.env.NODE_ENV;
module.exports = {
//entry: './src/main.js',
//output: {
//  path: path.resolve(__dirname, './dist'),
//  publicPath: '/dist/',
//  filename: 'build.js'
// },
  entry: NODE_ENV == 'development' ? './src/main.js' : './src/myPlugin/index.js',
  output: {
   path: path.resolve(__dirname, './dist'),
   publicPath: '/dist/',//路径
   filename: 'ldc-ui.js',//打包之后的名称
   library: 'ldc-ui', // 指定的就是你使用require时的模块名
   libraryTarget: 'umd', // 指定输出格式
   umdNamedDefine: true // 会对 UMD 的构建过程中的 AMD 模块进行命名。否则就使用匿名的 define
  },
...
}

6. 发布前准备

改写package.json中的private为false,加入"main": "dist/ldc-ui.js", 其他的自定义 -> 新建.npmignore文件忽略不需要上传的文件如.* *.md *.yml build/ node_modules/ src/ test/

7. 发布

npm run build 打包 -> 注册npm账号 -> npm login 登录 -> npm publish 发布

可能出现问题:

1. 登录源错误, npm config get registry 可查看当前登录源,npm config set registry=http://registry.npmjs.org 可切换到正确的登录源

2. 版本号不能重复

3. 图片资源打包后无法使用,所以自己的组件中不要使用

使用组件方式:

1. npm i xxx -D

2. import XXX from 'xxx'

3. const { A, B } = XXX

4. 在Vue中注册 components: { A, B }

总结

以上所述是小编给大家介绍的自定义Vue组件打包、发布到npm及使用教程,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
js获取div高度的代码
Aug 09 Javascript
JSON扫盲帖 JSON.as类教程
Feb 16 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
Oct 20 Javascript
jquery实现一个简单的表单验证实例
Mar 30 Javascript
用js实现放大镜的效果的简单实例
May 23 Javascript
jQuery实现根据生日计算年龄 星座 生肖
Nov 23 Javascript
jQuery选择器实例应用
Jan 05 Javascript
jquery实现数字输入框
Feb 22 Javascript
AngularJS基于provider实现全局变量的读取和赋值方法
Jun 28 Javascript
JS中封装axios来管控api的2种方式
Sep 11 Javascript
Vue页面跳转传递参数及接收方式
Sep 09 Javascript
原生JS中应该禁止出现的写法
May 05 Javascript
Vue中的组件及路由使用实例代码详解
May 22 #Javascript
Vue侦测相关api的实现方法
May 22 #Javascript
一文快速详解前端框架 Vue 最强大的功能
May 21 #Javascript
微信小程序系列之自定义顶部导航功能
May 21 #Javascript
js计算两个时间差 天 时 分 秒 毫秒的代码
May 21 #Javascript
微信小程序websocket实现即时聊天功能
May 21 #Javascript
Node.JS在命令行中检查Chrome浏览器是否安装并打开指定网址
May 21 #Javascript
You might like
预告映像公开!第1章续篇剧场版动画《Princess Principal Crown Handler》4月10日上映!
2020/03/06 日漫
zen cart新进商品的随机排序修改方法
2010/09/10 PHP
php调用dll的实例操作动画与代码分享
2012/08/14 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
浅析php单例模式
2014/11/25 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
Yii2框架redis基本应用示例
2018/07/13 PHP
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
JavaScript中valueOf函数与toString方法深入理解
2012/12/02 Javascript
动态加载js、css等文件跨iframe实现
2014/02/24 Javascript
详解javascript数组去重问题
2015/11/06 Javascript
canvas实现图像截取功能
2017/02/06 Javascript
javascript实现动态显示颜色块的报表效果
2017/04/10 Javascript
three.js中文文档学习之如何本地运行详解
2017/11/20 Javascript
基于JSONP原理解析(推荐)
2017/12/04 Javascript
vue-cli 打包后提交到线上出现 "Uncaught SyntaxError:Unexpected token" 报错
2018/11/06 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
详解微信小程序中var、let、const用法与区别
2020/01/11 Javascript
Python将图片转换为字符画的方法
2020/06/16 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
Python多进程fork()函数详解
2019/02/22 Python
python 图像处理画一个正弦函数代码实例
2019/09/10 Python
Pytorch自己加载单通道图片用作数据集训练的实例
2020/01/18 Python
PyCharm如何导入python项目的方法
2020/02/06 Python
python内打印变量之%和f的实例
2020/02/19 Python
玩具反斗城葡萄牙官方商城:Toys"R"Us葡萄牙
2016/10/21 全球购物
用友笔试题目
2016/10/25 面试题
好矿嫂事迹材料
2014/01/21 职场文书
人力资源部经理助理岗位职责
2014/03/04 职场文书
教师对学生的寄语
2014/04/03 职场文书
党性分析自查总结
2014/10/14 职场文书
2014年连锁店圣诞节活动方案
2014/12/09 职场文书
2015年庆祝国庆节66周年演讲稿
2015/07/30 职场文书
详解如何使用Node.js实现热重载页面
2021/05/06 Javascript
JavaScript前端面试组合函数
2022/06/21 Javascript