项目中使用过redux

声明文件的作用

  1. 编辑器代码不全,接口提示等feat
  2. 类型安全检测

声明文件的创建/使用方式

  1. 编写TS类型程序文件,TSC编译tsc --declaration,生成JS文件的同时即生成.d.ts的声明文件
  2. 手动编写.d.ts类型文件,一般是面向不活跃的项目,无法在本身包中提供类型声明文件,于是发布到@types,生成@types/packageName
  3. 项目中编写.d.ts,同时tsconfig中指向该type文件
阅读全文 »

今天访问Web突然报错,原来是网站被重定向到HTTPS,而请求API服务仍然是HTTP,Chrome安全策略进行了拦截,从而报错。

为什么会突然出现重定向到HTTPS呢,经过排查,最终发现原来是Chrome下的HSTS导致。

这里围绕着这个问题排查过程总结梳理下。

307

通过network,查看请求在发起后307重定向到HTTPS。而HTTPS安全链接下发起不安全的HTTP请求,浏览器会实现拦截,报错即如此。

307是由谁发起的呢,理论上后台/浏览器都可以做到,查看response ,发现header中有这样一个字段

1
Non-Authoritative-Reason: HSTS
阅读全文 »

最近在做开源项目,因此可以脱离公司成熟的CI/CD,自己搞搞。为了降低用户部署门槛,因此决定使用Docker来构建部署镜像,解决部署效率问题。

dockerfile

这里贴下构建镜像文件,文件名称比如是build.Dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
FROM node:14.17.0 as builder

ENV NODE_ENV production

RUN echo " ------------------Web打包 --------------------"

WORKDIR /management-web

COPY . /management-web

RUN npm install --registry=https://registry.npm.taobao.org
RUN npm run build

RUN echo " ------------------Web容器部署启动 --------------------"

FROM nginx:1.19.2
COPY --from=builder /management-web/build /usr/share/nginx/html
COPY deploy/nginx/conf.d /etc/nginx/conf.d
EXPOSE 80


说明

阅读全文 »

对于我当前所在team来说,TS几乎已是JS项目标配,估计其他厂也类似。原因很简单,就是类型检测可以为项目保驾护航,同时也TS类型声明本身充当了一部分文档的作用。

不知不觉,使用TS也好多年头,但是有些类型并不常用,必须承认原因就是没懂。因此,这里根据实践和学习,Mark下。

never

关于never需要有几点认识

  1. never是底部类型
  2. 常用于逻辑分支判断,确保新增的逻辑不会被遗忘
  3. void 表示返回为空,即返回undefined,没有任何类型,never 表示永远不存在的值的类型,永不返回。

使用场景

阅读全文 »

最近生产环境监控系统报告一个前端渲染报错。于是着手分析了下,这里记录总结下

报错信息

this.service.apply(…).then(…).catch(…).finally is not a function

报错环境

  • Mac OS 10.14.6 Mojave
  • Chrome 92.0.4515.131 最新版
  • WebKit 537.36
  • ahooks v2.9.6
阅读全文 »
0%