前言

最近开发中遇到很多相同的问题,下意识去翻自己的历史记录,但又没能快速定位。我的trilium一直用来记录自己的周报和相关教程,对于常见的bug和修复方案也找不到合适的地方,只能穿插在日报的历史中,随时间沉没。无意间翻到子舒的奇趣周刊,Bug周刊也由此而生。

Hexo command not found

问题描述

一段时间没有更新hexo博客,使用hexo的命令行时警告没有改命令,由于在几个月前配置过新电脑的环境并验证,所以可以排除是原来hexo博客迁移的问题,查找教程后,将博客文件目录下的 /node_modules/.bin 文件夹加入 环境变量->系统变量->path 中即可解决。

注意:是博客源码文件夹下的node_moudles/.bin 不是安装nodejs的node_moudles,

参考链接

清理WinSxS出错

问题描述

使用dism++进行空间回收时,勾选“被取代的WinSxS组件”出错,无法正常进行清理,这是版本的bug,更新版本至10.1.1002.1或更高版本

参考链接

net::ERR_BLOCKED_BY_CLIENT

问题描述

自己的博客f12后查看命令行,总是有几个插件报出net::ERR_BLOCKED_BY_CLIENT的错误,一直没有解决,但是打开纯净模式的edge后没有任何问题,于是推断是谷歌拓展插件的问题。

在workflow上了解到, AdBlockers 有一些规则,即它们将 URI 与某种类型的表达式进行匹配,对我插件的链接产生了误报。
最常见的方式就是将博客的地址加入AdBlockers白名单中即可解决。

参考链接

修改yarn全局安装和缓存位置

问题描述

最近c盘一下子少了20g,SpaceSniffer 检查扫描后发现页面休眠文件过大,教程解释c盘分配的虚拟内存过大,可我最近玩幻兽帕鲁防止虚幻5崩溃特意调高的虚拟内存,得,不能动。

清理c盘中yarn安装插件包留下的缓存,一下子c盘多了4g,再用dism++清理WinSxS组件,又释放了4个g。

1
2
3
4
5
6
7
8
9
# 修改yarn安装包的位置
yarn config set global-folder "F:\Program\yarn\global"
# 查看 yarn 全局安装位置
yarn global dir

# 修改缓存的位置
yarn config set cache-folder "F:\Program\yarn\cache"
# 查看 yarn 全局cache位置
yarn cache dir

minDoc本地部署

问题描述

需要一个管理产品文档的工具,同时具有权限管理、成员管理的功能,可根据文件(夹)结构自动生成侧边栏。

参考链接

css实现hover后的渐变效果

问题描述

通过css实现鼠标悬停后图片逐渐放大的效果,增加页面的交互感。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>鼠标悬停图片逐渐放大</title>
<style>
* {
padding: 0;
margin: 0;
box-sizing: border-box;
}

.container {
position: relative;
width: 100vw;
height: 100vh;
}

.card {
width: 400px;
height: 200px;
position: absolute;
border-radius: 8px;
display: flex;
flex-direction: row;
justify-content: space-evenly;
align-items: center;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
box-shadow: 0 3px 8px 6px rgba(7, 17, 27, 0.05);
transition: transform 0.3s ease;
overflow: hidden;
}

.card:hover {
box-shadow: 0 3px 8px 6px rgba(7, 17, 27, 0.09);
}

.card img {
height: 180px;
transition: transform 0.3s ease;
border-radius: 8px;
}

.card:hover img {
transform: scale(1.05)
}

.card .content {
display: inline-block;
width: 100px;
}
</style>
</head>

<body>
<div class="container">
<div class="card">
<img src="https://cdn.sa.net/2024/03/05/nmOrdsI4N9KebGi.png" alt="">
<div class="content">这是测试文本</div>
</div>
</div>

</body>

</html>

patch-package 给插件打补丁

问题描述

使用vuepress 1.8 版本搭建说明文档,想实现一个加密的效果,使用npm仓库的vuepress-plugin-posts-encrypt插件,但是部署后访问缓慢,打开控制台查看资源加载速度后,发现该插件引入的静态资源使用的是jsd加速?????

果断在插件内全局替换iview.min.jsiview.cssvue.min.js的链接为字节的静态资源库加速,丝滑访问,为了避免每次npm install后又要重新替换,引入了patch-package。安装步骤见参考链接。

需要注意,在执行 npx patch-package vuepress-plugin-posts-encrypt(修改包的名字)前需要修改源码,执行命令后可能会等待一段时间才会显示出对应的patch文件,be patient please 😊

参考链接

gitlab-ci

问题描述

需要对一个maven项目进行自动化构建,要求每次提交都会触发构建,减少运维的工作量,将构建好的jar包打包成docker镜像并推送至私有的镜像仓库

详情如下:

1、自定义开发的common模块并不完善,也没有上传至私有的nexus仓库,需要打包的功能模块依赖于common

2、项目依赖的部分jar包需要从私有的nexus仓库下载,需要配置对应的仓库地址

3、构建时间的优化、提升

解决方案

1、在代码仓库中增加 .m2/settings.xml 文件,配置对应的私有nexus仓库地址、阿里云或者腾讯云的nexus地址提升下载速度

2、增加 localReposity 配置,告诉maven在找不到对应jar 包时,从本地读取,完成common模块的引入。由于common模块是独立开发的,故和其他模块的pom父类并不一致,各个模块也有不同的配置,在原项目根目录下并没有pom文件,所以不能通过构建根pom文件的方式完成项目的打包。

3、引入cache

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
variables:
RELEASE_TAG: "1.0.0"
MAVEN_CLI_OPTS: "../.m2/settings.xml --batch-mode -Dmaven.repo.local=$CI_PROJECT_DIR/.m2/repository"

cache:
key: ${CI_COMMIT_REF_SLUG} # cache键值对 减少mvn下载jar包的时间 key指向当前项目分支
paths:
- ~/.m2/repository/ # 缓存地址 镜像根目录下的 .m2/repository/ 文件夹
- target/

# CI构建两步
stages:
- package
- release

# 在maven镜像中构建jar包
package:
image: maven:3.6.1-jdk-8-alpine
stage: package
only:
- master # 触发构建的分支
tags:
- docker
script:
- cd test-common # 进入common模块打包
- mvn -s $MAVEN_CLI_OPTS -e package install # 打包 并将打包后生成的jar下载至 镜像根目录.m2/repository/路径下(本地仓库)
- cd ../test-app # 切出common 打包其他模块
- mvn -s $MAVEN_CLI_OPTS -e package
artifacts: # 构建好的jar文件上传 并设置过期时间
paths:
- test-app/target/test-app-application-exec.jar
expire_in: 1 hours

release: # docker in docker 在docker中构建jar为docker镜像
image: docker:20-dind
stage: release
only:
- master
tags:
- docker-slim
before_script:
- docker login --username=username -p $REPOS_PASSWORD test.com # 配置私有镜像仓库的账号 密码 地址
script:
- df -h
- docker build -t test/test-app:$RELEASE_TAG . # docker镜像标签
- docker push test.com/test-image/test-app:$RELEASE_TAG # 推送