vite开发chrome扩展
事前准备Chrome Extensions开发指南 - Chrome Developershttps://developer.chrome.com/docs/extensions/mv3/
创建项目1npm create vite
安装核心依赖1npm install @samrum/vite-plugin-web-extension -D
该依赖通过 vite plugin 钩子实现了资源路径转换,并根据 manifest 对象生成 serviceWorker.js 和 manifest.json 文件,详情信息请查看官网
安装辅助依赖
适用于 TypeScript chrome 全局API
1npm install @types/chrome -D
使用方法vite.config.ts1234567891011121314151617import { defineConfig } from 'vite'import vue from '@vitejs/plugin-vue'import webExtension ...
TypeScript封装键盘事件
由于js是单线程,以及浏览器的键盘事件,最多只能做到关于Ctrl、Shift、Alt加任意一个的键位,无法做到同时使用方向键上和右,这在网页游戏中是致命的,所以在下实现了多重组合键的事件绑定
注意在使用组合键事件时,暂不支持声明Ctrl++这种按键,最好避免使用 ‘+’ 和 ‘‘ 的键位,因为 ‘+’ 作为连接组合键,’‘作为键盘事件的命名
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283class KeyboardBinding { // 声明一个索引,区分订阅事件 index: number // 声明一个事件对象,以key, fn形式存储键盘事件 events: Record<string, (e: KeyboardEvent) => void> // 声明一个数组,用于记录键 ...
Canvas五子棋
构建画布并获取canvas 2d绘图引擎12345678910111213141516const canvas = document.createElement("canvas");// 设置canvas容器宽高,注意不推荐使用css设置宽高canvas.width = 800;canvas.height = 800;// 设置背景色、位置等canvas.style["display"] = "block"canvas.style["margin"] = "0 auto"canvas.style["background"] = "#0a0"// 将canvas元素追加到body中document.body.append(canvas);// 获取画笔const ctx = canvas.getContext("2d");
绘制棋盘
棋盘由多条横线和纵线组合而成
由于设定宽度为800,预留100空间,实际的棋盘宽为700
为了好 ...
前端开发环境准备
前情提示,适合有点计算机基础的,然后尽量有自己的梯子
scoop个人推荐的windows安装包管理器
官网传送门
安装到指定目录(推荐)下方命令建议在桌面路径下执行
1irm get.scoop.sh -outfile 'install.ps1'
-ScoopDir指定scoop的路径
1.\install.ps1 -ScoopDir 'D:\tools\Scoop'
git个人推荐安装mingit
scoop安装(要点运气,国内时不时墙了Github)
1scoop install mingit
备用方案:git-for-windows传送门
nodescoop安装(要点运气,国内时不时墙了Github)
1scoop install nodejs-lts
备用方案:下载传送门
配置国内镜像1npm config set registry https://registry.npmmirror.com
vscode官网传送门
推荐安装插件
Auto Complete Tag
CodeGeeX
EditorConfig for V ...