分类 代码如诗 下的文章

MyTrack 是一个为 Typecho 博客系统开发的足迹记录插件,允许用户在地图上标记自己的旅行足迹,并关联相关的文章和图片。插件基于高德地图 API,提供了直观的地图展示和便捷的管理功能。

插件目前开启售卖,价格定为 10 元,收入款全部捐给韩红基金会,并在文章底部公布捐款情况,购买请移步到文末,购买后请把订单截图通过邮件发送到我邮件 [email protected],我会在当天处理邮件,把插件捐款情况回复在邮件中。购买前如果有疑问,也可以发邮件与我沟通,避免引起误会。

捐款后会生成捐款证书,所以邮件中最好能附带姓名,我可以按照姓名来捐款,目前捐款列表已经迁移到关于页面

我相信,购买插件的都是有爱心的朋友,所以还希望大家使用后帮忙宣传一下。

- 阅读剩余部分 -

最近在给组件底层脚手架升级,同时也把webpack4升级到了webpack5,但是发现升级后打包会生成LICENSE文件:

生成的LICENSE文件

查阅官网资料,找到了解决办法:

https://webpack.docschina.org/plugins/terser-webpack-plugin/#extractcomments

webpack.config.js中修改配置:

const TerserPlugin = require("terser-webpack-plugin")
module.exports = {
    optimization: {
        minimize: true,
        minimizer: [new TerserPlugin({
           extractComments: false, //不将注释提取到单独的文件中
        })],
    },
}

修改之前,再次打包即可。

饿了么表格性能一直是有些问题的,特别是使用了固定列,表格会把固定列克隆出来一份,这样会导致渲染很多冗余DOM,随着数据量的增加,冗余DOM也会变多,如果固定列再使用插槽,里面嵌套复杂的组件,性能会下降更多。

最近在做表格的性能优化,发现如果不考虑IE浏览器的情况,可以使用 position: sticky 来实现固定列。

- 阅读剩余部分 -

Moment.js是一个轻量级的js时间处理类库,其使用简单,方便了日常开发中对时间的操作,提高了开发效率。虽然大家经常用,但是我这次在项目中使用了一次,出现了严重的bug,下面就简单的把bug描述一下!

- 阅读剩余部分 -

根据官方文档可以这么配置:

import Vue from 'vue';
import Element from 'element-gui';
import 'element-gui/lib/theme-chalk/index.css';
Vue.use(Element, { size: 'small', zIndex: 3000 , duration: 5000 });

但是实际项目中,可能需要针对某个组件进行一些属性的全局配置,这时候就可以使用下面的方法:

import Vue from 'vue';
import Element from 'element-gui';
import 'element-gui/lib/theme-chalk/index.css';

ElementUI.Tabs.props.type = { type: String, default: 'border-card' }
Vue.use(ElementUI);

但是某些情况,上面方法可能不太适应,例如给所有 el-input 添加 placeholder

在说Electron进程通信的时候,先说一下Electron中的两种进程:主进程和渲染进程。

主进程通过创建 BrowserWindow 实例来创建网页。 每一个 BrowserWindow 实例在其渲染过程中运行网页,当一个BrowserWindow 实例被销毁时,对应的渲染过程也会被终止。简单来说,一个客户端就是一个主进程。

渲染进程只能管理相应的网页,一个渲染进程的崩溃不会影响其他渲染进程。渲染进程通过 IPC 与主进程通信在网在页上执行 GUI 操作。 出于安全和可能的资源泄漏考虑,直接从渲染器进程中调用与本地 GUI 有关的 API 受到限制。简单来说,一个页面就是一个渲染进程。

注意:主进程管理所有网页及其对应的渲染进程

- 阅读剩余部分 -

为啥会有这个奇葩的需求呢?其实这个需求还是有很多场景存在的!

例如我在做的可视化平台这个产品,是分WEB版和Electron客户端,使用的都是一套Vue的代码,WEB版是方便线上开发使用,Electron是方便离线使用(离线的时候读取本地数据,在线的时候拉取服务端数据)。在WEB端,我需要给用户一个下载Electron端的地址,但是我在Electron端的时候,就不希望在显示这个链接,所以就需要做一个客户端的检测!对,就是userAgent检测!

var userAgent = navigator.userAgent.toLowerCase();
if (userAgent.indexOf(' electron/') > -1) {
   // Electron-specific code
}

通过上面的代码,就可以检测到现在代码是在Electron端运行还是在WEB端运行,我本地使用的是Electron 9,可以正常使用。

之前写的农历面板组件虽然是一个比较小众的组件,但是也确实帮助了一些小伙伴。现在组件已经趋于稳定,所以为了让组件能够帮助更多的伙伴,于是就把组件提交到了awesome-vue库,没想到很快就通过了,已经合并到了日历组中。趁这功夫,又把封装的flv.js的组件也一并提交上去了,希望能够帮助更多的人,如果用的舒服,还请给一个星星鼓励。

vue-lunar-calendar-pro
vue-lunar-calendar-pro
Owner:wangdaodao
Watch:93
Star:93
Fork:29
一个支持农历,节气,假日的日历面板!

vue-flv-player
vue-flv-player
Owner:wangdaodao
Watch:19
Star:19
Fork:4
基于flvjs封装的播放器,支持Flv格式和MP4格式视频播放。

linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux系统上面原本就有非常多的计划性工作,因此这个系统服务是默认启动的。另 外, 由于使用者自己也可以设置计划任务,所以, Linux系统也提供了使用者控制计划任务的命令 :crontab 命令。

之前再搞天翼云盘GitHub Action签到的时候,接触过crontab,最近在研究Padavan的时候,发现他也有这些用法,于是好好的整理一下!:

2021-02-16T15:14:52.png

- 阅读剩余部分 -

最近研究Electron,涉及到了自动更新,网上教程也不少,但是好多都不可用了,经过了2天的摸索,终于搞定了菜单手动更新或者偷摸自动更新安装。因为我没有MAC,所以这篇文章只针对Windows系统,等我搞到了MAC,我再来一篇关于MAC的文章!

- 阅读剩余部分 -

最近项目中在逐步的尝试使用Vue+Electron做一些客户端,其中就有一个这样的需求:用户在安装完客户端后,需要运维人员把每个电脑上的客户端做不同的配置,也就是说,需要有一个配置文件的存在。

现在拆分下需求细节:

  1. 给到用户的是一个exe的安装包。
  2. 统一的安装包,但是不同机器配置可以修改。
  3. 配置文件应该在安装后的安装目录里面,方便运维查找。
  4. 在开发的时候,就需要把这个读取的静态文件列出来,打包的时候,需要单独抽出来。

- 阅读剩余部分 -