Kim
Kim
## Description When I was using Functionkeys and NonFunctionKeys type, I found that undefined and null were not filtered out ## Related issues: - Resolved #XXX ## Checklist * [x]...
### Vue version 3.2.37 ### Link to minimal reproduction https://sfc.vuejs.org/#eNp9kE1qwzAQha8yaGMbHIl0aZxAT9ALaOOacepg/TAauQvju3ccpd01AoGe5tMT723qPUa9ZlSd6tNIc2RIyDlerZ9dDMSwEQ4jzyu2QDi1gNOEI+8wUXBQydPK+jH4xEBwEaTAtbD1uWmsL3xdN3C5wmY9wEGHBfUSbnVFXSXGeh2WjELvso2Bj8wxcwcP8buog7P1T1b+evsXFbIMX+relMSSVQSji8vAKKo3f0K1qvRwckPU9xS8NPVIYZ+DZFVXch130sehrfpijqkzJk3j0e896UA3IydN2fPsUGNyp08K3wlJjK06LHZpQO0/O++Bng== ### Steps to reproduce Open the browser console to view the output. ### What is expected? When assigning a value...
fix: https://github.com/vuejs/core/issues/6358
fix: https://github.com/vuejs/core/issues/5954 When we explicitly declare the type for the argument to the `reactive` function: ```ts interface WrapRef { foo: Ref } const obj = reactive({ foo: ref(1) }) const...
fix: https://github.com/vuejs/core/issues/6268
```ts type Replace = From extends '' ? S : S extends `${infer V}${From}${infer R}` ? `${V}${To}${R}` : S ```
### Parcel Parcel是近年出现的新一代打包工具,它的出现很明显的要挑战Webpack,因为它官网的一句话: > 极速零配置Web应用打包工具。 ### Parcel的特性分析 官网把parcel的特性说的明明白白的。  1. 第一条:我们都知道webpack是基于node的,而node是单线程的,所以webpack打包起来很慢,目前也有个叫happypack的工具帮助webpack使用worker进程进行多核编译。而Paecel本身就是使用worker进行启动多个编译,而且存在文件系统缓存,打包速度很快。 2. 第二条:Parcel是一个开箱即用的打包工具,它能开箱即用到什么程度,它可以使用任何类型的文件作为entry(当然最好还是使用html和js),而且不需要插件。相对于webpack只能使用js作为entry,真的是好太多了。 3. 第三条:关于babel、postcss、posthtml相关的东西,parcel不需要任何配置,只需要在项目目录下创建.babelre、.postcssrc、.posthtmlrc并且书写即可。parcel会自动的去找这些文件。但是这也有不好的地方,如果下载的包里面带有.babelrc的话,parcel也会将那个.babelrc作为本项目中的文件来处理。 4. 第四条:只要使用动态import()语法,Parcel就将输出的文件进行拆分。 5. 第五条:Parcel不需要配置,自身就集成了HMR(热更新),方便在开发模式下使用。 6. 第六条:友好的错误日志,当遇到错误的时候,Parcel会把错误代码并且高亮的在控制台显示出来。 ### 使用 >使用parcel node版本必须要在8以上 #### 安装Parcel > npm install...
### browserify browserify可以说是一个打包工具,它的最大的优点就是在项目中使用require等node模块,使用browserify打包之后可以在浏览器中运行。 ### 安装 > npm install browserify -g ### 使用 #### 初始化项目 > npm init 创建index.html、index.js、test.js,内容如下。 ``` //index.html Document //index.js var cheerio = require('cheerio'); var test = require("./test");...
### 什么是持续集成? 持续集成(Continuous intergration),也叫CI。 在持续集成环境中,开发人员将会频繁的提交代码到主干。这些新提交在最终合并到主线之前,都需要通过编译和自动化测试流进行验证。这样做是基于之前持续集成过程中很重视自动化测试验证结果,以保障所有的提交在合并主干之后的质量问题,对可能出现的一些问题进行预警。 ### 什么是持续交付? 持续集成(Continuous delivery),也叫CD。 持续交付就是讲我们的应用发布出去的过程。这个过程可以确保我们尽可能快的实现交付。这就意味着除了自动化测试,我们还需要有自动化的发布流,以及通过一个按键就可以随时随地实现应用的部署上线。 通过持续交付,我们可以决定每天、每周、每两周发布一次,这完全可以根据自己的业务进行设置。但是如果真正的希望体验到持续交付的优势,就需要先进行小批量发布,尽快部署到生产线,以便在出现问题时方面进行故障排除。 ### 什么是持续部署 持续部署(Continuous delivery),也叫CD。 如果想在持续交付的基础上更深一步的话,那就是持续部署了。通过这个方式,任何修改通过了所有的工作流就会直接和客户见面。没有人为干预(没有一键部署),只有当一个修改在工作流中构建失败才能阻止它部署到产品线。也就是说不需要人工参与,只要代码push版本仓库,线上就已经部署好了(当开发人员在主分支中合并一个提交时,这个分支将被构建、测试, 如果一切顺利,则部署到生产环境中)。 #### 持续集成的需求--需要用持续集成来解决的问题。 1. 持续集成是通过平台串联各个开发环节,实现和沉淀工作自动化的方法。 2. 线上代码和代码仓库不同步,影响迭代和团队协作。 3. 静态资源发布依赖人工,浪费开发人力。 4. 确少自动化测试,产品质量得不到保障。 5. 文案简单修改上线,需要技术介入。 ####...