说明
本文是笔者的经验记录,主要留着自己看的,行文不易看懂,以下若无特殊说明默认为 Ubuntu 20.04 LTS 系统。
win10 WSL
听说 90% 的人都在 win10 下使用 ubuntu 子系统了!
实用网站
- npmtrends: Compare package download counts over time
- star-history: The missing star history graph of
国内镜像
apt-get 镜像源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list
# 输入国内镜像源
sudo apt-get update
中科大源
# 默认注释了源码仓库,如有需要可自行取消注释
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
# 预发布软件源,不建议启用
# deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
Terminator + oh my zsh
sudo apt-get install terminator
sudo apt-get install zsh
chsh -s $(which zsh)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# sh -c "$(curl -fsSL https://gitee.com/oh-my-shell/ohmyzsh/raw/master/tools/install.sh)"
# 隐藏主机名,文件最后添加
vim ~/.zshrc
# prompt_context() {}
GitHub
一般知名仓库在 gitee.com/ 都有每天同步,国内访问友好。有些需要运行安装脚本的,把地址替换成 https://gitee.com/mirrors/ 即可,如:
https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh
=>
https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh
sudo vim /etc/hosts
# 不怎么好用
20.205.243.166 github.com
# 192.30.255.112 github.com
# 151.101.113.194 github.global.ssl.fastly.net
# 199.59.149.208 github.global.ssl.fastly.net
nvm
# 安装
# 源地址 https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh
curl -o- https://gitee.com/mirrors/nvm/raw/v0.39.1/install.sh | bash
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
# 镜像
nvm node_mirror: https://npmmirror.com/mirrors/node/
# 安装
nvm install --lts
# 设置默认
nvm alias default 8.0.0
因为 install.sh 脚本里也有下载 github 的代码,所以要做以下替换:
https://raw.githubusercontent.com/${NVM_GITHUB_REPO}=>https://gitee.com/mirrors/nvm/rawhttps://github.com/${NVM_GITHUB_REPO}=>https://gitee.com/mirrors/nvm
npm 镜像源
# .npmrc
registry = https://registry.npmmirror.com
engine-strict = true
# 全局设置 npm 源
npm config set registry https://registry.npmmirror.com
MongoDB
清华镜像:mirrors.tuna.tsinghua.edu.cn/help/mongod…
# 首先信任 MongoDB 的 GPG 公钥:
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
# Ubuntu 20.04 LTS
deb https://mirrors.tuna.tsinghua.edu.cn/mongodb/apt/ubuntu focal/mongodb-org/5.0 multiverse
# 安装
sudo apt-get update
sudo apt-get install -y mongodb-org
# 启动、查看、停止、重启
systemctl start/status/stop/restart mongod
官网:docs.mongodb.com/manual/tuto…
VS Code 插件
参考:前端 40+ 精选 VSCode 插件,总有几个你未拥有!
必备
- Bracket Pair Colorizer 2
- CSS Peek
- ESLint
- GitLens — Git supercharged
- JavaScript (ES6) code snippets
- Markdown All in One
- open in browser
- Prettier - Code formatter
- TODO Hightlight
- Turbo Console Log
- WakaTime
常用
- Code Runner
- Increment Selection
- Live Server
- shell-format
- Stylelint
- Todo Tree
- Vue Language Features (Volar)
- Vim
偶尔
- Material Icon Theme
- Pangu-Markdown
- Pangu-Markdown-VSCode
- sneak mark
- koroFileHeader
- Tabnine AI Autocomplete for Javascript, Python, Typescript, PHP, Go, Java, Ruby & more
- JSON to TS
- REST Client
- vscode-faker
- Regex Previewer
- Markdown PDF
常用网站
- 对比 Github Star:star-history.com/
- 对比 npm download:www.npmtrends.com/
踩坑经验
Docker
去掉 sudo:
- 创建docker组(已经存在则不用创建),
sudo groupadd docker - 添加当前用户到docker组,
sudo gpasswd -a ${USER} docker - 重启 docker服务,
sudo systemctl restart docker - 切换到docker组,
newgrp docker
MySQL
安装见:blog.csdn.net/Petergzc/ar… 注意:
- mysql 下的命令要加
;结尾; - 注意文档中的
'。
生成测试数据:github.com/datacharmer…
注意导入命令是 mysql -uroot -p < employees.sql
Antd Pro
运行失败时,清理 src/.umi 试试
Yapi
nodejs版本目前尝试成功的最高版本为14.19.0,16.14.0 不成功;- 要删除
package-lock.json再安装,否则可能失败; - 要将 config.json 中 db 的
username和password改为空; - 为保证国内速度,git 仓库用了 gitee 的源,npm 用的淘宝源;
- 若 install-server 失败,尝试
mongo && use yapi && db.dropDatabase()删除之前生成过的 yapi db。
mkdir yapi && cd yapi
git clone --depth=1 https://gitee.com/mirrors/YApi.git vendors && cp vendors/config_example.json ./config.json && cd vendors
rm package-lock.json && npm install --production --registry https://registry.npmmirror.com
vim ../config.json # 要将 config.json 中 db 的 username 和 password 改为空
npm run install-server
node server/app.js # pm2 start server/app.js --name yapi
config.json
- 禁止注册 "closeRegister":true,
- 默认密码(ymfe.org)
{
"port": "3000",
"adminAccount": "admin@admin.com",
"closeRegister":true,
"timeout":120000,
"db": {
"servername": "127.0.0.1",
"DATABASE": "yapi",
"port": 27017,
"user": "",
"pass": "",
"authSource": ""
},
"mail": {
"enable": true,
"host": "smtp.163.com",
"port": 465,
"from": "***@163.com",
"auth": {
"user": "***@163.com",
"pass": "*****"
}
}
}
Hexo
.gitignore
.DS_Store
Thumbs.db
db.json
*.log
node_modules/
public/
.deploy*/
_multiconfig.yml
同时发布 2 个仓库
npm install hexo-deployer-git --save 之后,修改 _config.yml。
deploy:
type: git
repo:
gitee:
url: https://gitee.com/username/username
branch: gh-pages
github:
url: https://github.com/username/username.github.io
branch: gh-pages
"scripts": {
"blog": "hexo clean && hexo deploy"
},
主题
倍速
<audio id="audio" controls="controls" preload="none">
<source id="mp3" src="linchao01-40.mp3" >
</audio>
<button onclick="document.getElementById('audio').playbackRate = 1">
x1.0
</button>
<button onclick="document.getElementById('audio').playbackRate = 1.5">
x1.5
</button>
<button onclick="document.getElementById('audio').playbackRate = 2">
x2.0
</button>
访问控制
由于是私人博客,想做个简单访问控制的话,加个弹窗简单阻止一下小白。源代码如下:
(function () {
var token = "xxxxxxx";
if (localStorage.getItem("tokenValue") !== token) {
var mask = document.createElement("div");
mask.style.position = "fixed";
mask.style.zIndex = 9999;
mask.style.textAlign = "center";
mask.style.paddingTop = "20%";
mask.style.top = 0;
mask.style.left = 0;
mask.style.width = "100vw";
mask.style.height = "100vh";
mask.style.background = "#fff";
var input = document.createElement("input");
input.placeholder = "Code";
input.type = "number";
var btn = document.createElement("button");
btn.innerText = "OK";
mask.append(input);
mask.append(btn);
document.body.append(mask);
btn.addEventListener("click", function () {
if (input.value === token) {
localStorage.setItem("tokenValue", token);
document.body.removeChild(mask);
} else {
input.value = "";
}
});
}
})();
- 用工具压缩后,加入到
/themes/archer/source/scripts/main.js文件中。 - 在
main.js中搜索window.addEventListener("load",找前面是各种 console 的那个。在它前面加上压缩后的代码即可。