vitest 项目集成 codecov

项目配置 vitest 配置 不需要特殊配置, 增加 coverage 配置即可: import { defineConfig } from 'vitest/config'; export default defineConfig({ test: { // 注意: 新版 vitest 默认 watch: true, 需要修改为 false, 否则命令会始终不停止 watch: false, // ... coverage: { include: ['src'], all: true, provider: 'istanbul', reporter: ['text', 'json', 'html'], } }, }); npm 命令 为使其 bash 脚本运行报告, 需要添加 npm script: { "scripts": { "coverage": "vitest --coverage" } } 配置 github actions 参考: https://docs.codecov.com/docs/github-2-getting-a-codecov-account-and-uploading-coverage#github-actions 配置 github actions 为配置 ci 的触发规则, codecov 配置需要额外配置...

<span title='2023-07-09 00:00:00 +0000 UTC'>2023-07-09</span>&nbsp;·&nbsp;2 min&nbsp;·&nbsp;242 words&nbsp;·&nbsp;Kreedzt

nodejs npm 在 windows 下的问题

nodejs npm 在 windows 下的问题 用户名包含空格时, 执行 npx 报错, 路径不对问题 BUG见: create-reat-app issue 复现步骤: C:\Users\Vaidehi Shah\Desktop\MERN-ShoppingList\client> npx create-react-app . 输出: Error: EPERM: operation not permitted, mkdir 'C:\Users\Vaidehi' 很明显, 以上用户名被截取了 解决方案: 首先打开 CMD(命令指示符), 进入到用户名上一级目录下, 执行 dir /x 命令 # 通常是如下目录 C:\Users>dir /x 驱动器 C 中的卷没有标签。 卷的序列号是 F818-9B1A C:\Users 的目录 2020/11/10 19:24 <DIR> . 2020/11/10 19:24 <DIR> .. 2021/07/24 20:08 <DIR> KENZHA~1 Ken Zhao 2021/07/08 22:37 <DIR> Public 0 个文件 0 字节 4 个目录 722,590,040,064 可用字节 以上是我的用户名: Ken Zhao 左侧就是简写名称: KENZHA~1....

<span title='2023-02-02 00:00:00 +0000 UTC'>2023-02-02</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;98 words&nbsp;·&nbsp;Kreedzt

React hooks 入门

React hooks 入门 此教程翻译自Academind课程, 源地址:https://www.youtube.com/watch?v=-MlNBTSg_Ww 为何需要React Hooks 为了状态和生命周期而去写Class组件往往是繁琐的, 而且组合优于继承的原则, 使得在多数情况下能定义函数组件就不去定义类组件 在新版React(16.8)中, 新增了React Hooks, 使我们可以在函数组件中使用状态和生命周期函数, 使得函数组件更加灵活, 减轻类组件使用负担 从state开始(useState) 项目目录: src/ |-components/ |---TabList.js |---Schedule.js |-hooks/ |---http.js 首先我们声明一个无状态函数组件, 内容如下: const TabList = () => { const currentTab = 1; return <div> CurrentTab: {currentTab} </div>; }; 这是一个普通的无状态组件, 我们使用新的useState API来赋予初始值: (useState的调用参数和state一样, 可赋予任何值)(useState的参数为state的初始值) useState方法返回1个数组, 数组内包含2个参数, 第一个参数是当前state: import React, { useState } from 'react'; const TabList = () => { const [state] = useState({ selectedTab: 1 }); return <div> CurrentTab: {state....

<span title='2023-02-02 00:00:00 +0000 UTC'>2023-02-02</span>&nbsp;·&nbsp;7 min&nbsp;·&nbsp;1476 words&nbsp;·&nbsp;Kreedzt

Rx.js 入门

Rx.js 入门 该文章内容为 https://www.youtube.com/channel/UCVyRiMvfUNMA1UPlDPzG5Ow 的翻译 ReactiveX 通常用来解决异步的繁琐操作, ReactiveX 中所有数据都看作"流", 也是"流式编程"的集大成者, 并运用 ReactiveX 的操作符我们可以轻松联动多个异步操作之间的关系 起手文件配置 项目结构 |-src/ |---code.ts |-index.html |-package.json |-tsconfig.json |-webpack.config.js package.json: { "name": "rxjs-learn", "version": "1.0.0", "main": "index.js", "license": "MIT", "scripts": { "start": "webpack-dev-server --mode development" }, "dependencies": { "rxjs": "^6.4.0", "rxjs-compat": "^6.4.0", "ts-loader": "^5.3.3", "typescript": "^3.4.3", "webpack": "^4.30.0", "webpack-dev-server": "^3.3.1" }, "devDependencies": { "webpack-cli": "^3.3.0" } } tsconfig.json: { "compilerOptions": { "outDir": "./dist/", "noImplicitAny": true, "module": "es2015", "moduleResolution": "node", "sourceMap": true, "target": "es6", "typeRoots": ["node_modules/@types"], "lib": ["es2017", "dom"] } } webpack....

<span title='2023-02-01 00:00:00 +0000 UTC'>2023-02-01</span>&nbsp;·&nbsp;8 min&nbsp;·&nbsp;1521 words&nbsp;·&nbsp;Kreedzt