2025/1/19小于 1 分钟
初衷
我太菜了,赶紧打基础吧。
不能真的用原生的写法来实现业务,逼自己用 vue3 + typescript 的新技术栈来复现,重做这些典型的小项目。
训练注意事项
- 大胆的抄代码。抄代码是学习最快的方式。
- 改成 vue3 的写法,慢慢拓展之前没学过的 css 和 javascript 知识点。
- 自己再针对性的写简单的 demo,刻意练习没接触过的知识点。
- 最后尝试去找现成的工具库,看看有没有现成的库可以优化开发过程,未来尽量学会搬库完成业务。
2025/1/19大约 1 分钟
2025/1/19小于 1 分钟
2025/1/19小于 1 分钟
2025/1/19小于 1 分钟
目前我正在使用@vuepress/plugin-docsearch
来为我的网站提供搜索功能。按照教程要求,我在algolia
内申请并获取到相应的 indexName
、appId
和 apiKey
。
在vuepress2
的docs/.vuepress/config.ts
配置文件内,我是这样使用这些值的:
import { const defineUserConfig: (config: UserConfig) => UserConfig
defineUserConfig } from "vuepress";
import { const docsearchPlugin: ({ injectStyles, indexBase, locales, ...options }?: DocSearchPluginOptions) => Plugin
docsearchPlugin } from "@vuepress/plugin-docsearch";
export default function defineUserConfig(config: UserConfig): UserConfig
defineUserConfig({
plugins?: PluginConfig | undefined
Vuepress pluginsplugins: [
function docsearchPlugin({ injectStyles, indexBase, locales, ...options }?: DocSearchPluginOptions): Plugin
docsearchPlugin({
// indexName obtained from the mail
indexName?: string | undefined
indexName: "ruan-cat",
// appId obtained from the mail
appId?: string | undefined
appId: "26AGWKLS5F",
// apiKey obtained from the mail
apiKey?: string | undefined
apiKey: "56468a67aa27242ac177690073ba0e15",
// The apiKey is provided from the default crawler configuration, but I'm not sure if it should be used here.
// apiKey: 'c0121d37470f12e725a3cf2b45dda7e7',
}),
],
});
2025/1/19大约 3 分钟
2025/1/19小于 1 分钟
2025/1/19小于 1 分钟
在设置响应拦截器后,接口返回值怎么做类型声明?
axios 的拦截器,可以更改返回值,一般来说返回值是 AxiosResponse 类型的。
但是拦截器普遍的做法是,直接返回 data。对 AxiosResponse 解包,减少一层的 data。
这样的话,接口返回值也需要同步地做出更改。以下有 2 种方案来实现:
强制类型转换方案
以该仓库为例:
2025/1/19大约 2 分钟
turbo 报 Failed to add workspace
的错误。
运行 turbo 时,识别包的范围深度过深,把一些垃圾 package.json 也识别成工作区了,恰好出现两个包的 name 重名冲突的情况。
情况说明
turbo 对 package.json 的识别有误。不应该识别无意义的包。
尝试解决
2025/1/19大约 1 分钟