基于vue写一个插件,并发布npm

今天是一月一日,看看身边的情侣,感觉又是一个七夕节。

新年新气象,我应该立一些flag了,就一个月一个目标吧。

好话不多说,开始插件教程。

功能:用vue的自定义指令directive封装一个转换时间格式插件

步骤:

  1. 下载vue脚手架
  2. 新建js文件,并写业务逻辑,调整打包引用路径
  3. npm run build 打包
  4. 登录npm发布
  5. 下载使用

第一步
因为是封装一个插件,所以用阉割版的vue脚手架就可以

vue init webpack-simple 名称
cnpm i
npm run dev

第二步
新建一个index.js文件,内容如下:

let time = {};
// Vue.js 的插件应该暴露一个 install 方法。
// 这个方法的第一个参数是 Vue 构造器,第二个参数是一个可选的选项对象:
// 自定义指令为:v-time
time.install = function(Vue){
   Vue.directive('time',{
       bind(el){
       		// el相当于getElementById获取到的dom元素
            el.innerHTML = new Date(Number(el.innerHTML)).toLocaleString().replace(/(上午|下午|)/g,"");
       }
   })
}
// 判断vue是全局变量时,自动安装,这个如果你是vue脚手架import引入的,那就卵用没有
if (typeof window !== 'undefined' && window.Vue) {
 install(window.Vue);
}
export default time;

然后到webpack.config.js里面修改如下内容:
照着改就行

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

再然后到package.json中:

"name": "to-time-string",  // 包名,不能有大写字母,不能和已经发布的重复,如果不知道重复没,就到npm官网搜一下,搜不到就不会重复  
"description": "转换时间格式",   // 文件描述
"version": "1.0.0",  // 版本号,更新时如果和上一次版本号一样会报错
 "private": false,   // 重要的:把这个私有属性改为false
 "main": "dist/time.js",  // 重要的:新增一个这样的路径,这样在引用这个插件时,它就知道去哪里引用

最后到gitignore中,把dist删除了

哦还有一步,差点忘了,不过可以理解,毕竟我刚老了一岁。
到index.html中把引用路径改成
在这里插入图片描述

就可以了。
这是最后的目录结构,和用到的文件
在这里插入图片描述

第三步打包,不多赘述。

第四步npm发布:

进入文件所在的终端或者cmd中
没有npm帐号,就先去官网注册个。点这里进入官网地址

npm login
npm publish

有报错的话复制报错,百度就可以了,前辈们的硕果,是我们进步的阶梯。

第五步下载使用:

npm install to-time-string --save / cnpm i to-time-string --save

main.js中import引用插件,然后Vue.use(插件)

import toTimeString from 'to-time-string'

Vue.use(toTimeString)
<p>{{new Date().getTime()}}</p> //原时间戳
<p v-time>{{new Date().getTime()}}</p> // 用了插件的时间戳

如图:
在这里插入图片描述

以上是今日份的硕果,接下来该做我这一年的计划了,比如变白一点,和变有钱。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值