- chore(ts-lib-tools): gen-module 脚本支持指定新建模块所在的文件夹名称
- improve(eslint-config-ts-lib): eslint 从 7.x 升级到 8.15.0
- improve(eslint-config-ts-lib): 改进执行 lint 的速度
- fix(eslint-config-ts-lib): 修复 prettier 和 eslint 规则冲突的缺陷
- breadchange(eslint-config-ts-lib): 增加 jsdoc 和 typescript 类型显式声明的规则
- improve(ts-lib-scripts): 启用 eslint 的缓存
- improve(ts-lib-scripts): 升级 husky 和 lint-staged
- fix(ts-lib-tools): 修复在 monorepo 模式下打包之后再执行单元测试,有可能报
package.json
和dist/package.json
名称相同的冲突 - improve(ts-lib-tools): 升级 @babel/core 到 7.17.10 版本
- fix(ts-lib-tools): 修复打包时包含了 jest 的
__snapshots__
目录的缺陷
- fix(ts-lib-tools): 修复打包时包含了 jest 的
__snapshots__
目录的缺陷 - fix(ts-lib-tools): 修复新建的 monorepo 子模块发布之前不编译和发布失败的缺陷
- fix(ts-lib-tools): 修复执行 monorepo 子模块中的单元测试失败的缺陷(失败的原因:在部分情况下, jest 会解析到
dist
目录下的package.json
文件)
- fix(babel-preset-ts-lib): 修复总是出现 @babel/plugin-proposal-private-methods loose 警告的缺陷
- feat: 支持新的 JSX 转换 (#38)
- fix(ts-lib-tools): 修复代码中引入 node_modules 中的 css 文件,导致 jest 单元测试执行失败的缺陷
- fix(eslint-config-ts-lib): 禁用 react/no-unused-prop-types 规则
- fix(eslint-config-ts-lib): 去掉不存在的 @typescript-eslint/camelcase
- fix(eslint-config-ts-lib): 修复 eslint 不检测 react hooks 的依赖的缺陷
- fix(eslint-config-ts-lib): 禁用 react/require-default-props,不推荐使用
- fix(eslint-config-ts-lib): 禁用 no-undef,并重新定义 @typescript-eslint/no-unused-vars
- fix(eslint-config-ts-lib): 修复发布 npm 模块时缺少 js 文件的缺陷
- fix(eslint-config-ts-lib): 修复 eslint 错误提示
- fix(eslint-config-ts-lib): 修复 eslint 错误提示
- fix(eslint): 修复 eslint 不支持 ts 4.0 的缺陷
- feat: 支持 webworker 场景
- fix(ts-lib-scripts): 修复
-simple
打包模式下发布的 npm 包没有types
和dist
的缺陷
-
BREAKCHANGE: 去掉 babel-plugin-clean-type-import-export 模块,推荐采用 ts 3.8 语法代替此模块的作用
import A, { B, C, D, E } from './C'; export { A, /* type */ B, // type C, };
-->
import A, { D, E } from './C'; export { A }; export type { B, C } from './C';
-
feat: 升级 typescript 3.9 -> 4.0.2
-
fix(ts-lib-scripts): 修复 eslint 关于 vscode 的配置警告
"eslint.autoFixOnSave": true, "eslint.validate": [ "javascript", "javascriptreact", { "language": "typescript", "autoFix": true }, { "language": "typescriptreact", "autoFix": true } ],
-->
"editor.codeActionsOnSave": { "source.fixAll.eslint": true },
-
chore(ts-lib-scripts): 去掉无用的 src/tsconfig.json
-
chore(ts-lib-tools): 升级 jest 24 -> 26
- feat(eslint-config-ts-lib): eslint 支持 cypress
- fix(ts-lib-tools): 修复单元测试不识别 setupTests.ts 配置文件的错误
- fix(ts-lib-tools): 修复单元测试不识别 setupTests.ts 配置文件的错误
- fix(ts-lib-scripts): 修复 docz 配置错误
- fix(babel-preset-ts-lib): 修复在 Jest 测试时无法使用
jest-styled-components
提供的toHaveStyleRule
方法 - chore(babel-preset-ts-lib): 更新依赖版本
- fix(ts-lib-tools): 修复 tsc 执行失败控制台提示信息不友好的缺陷
- feat: 支持 typescript3.8 版本
- fix(ts-lib-scripts): 修复打包时找不到 build/es6 目录的缺陷
- fix(ts-lib-tools): 修复 simple 发布失败的缺陷
- fix(ts-lib-scripts): 修复生成的模块没有 tsconfig.simple.release.json 文件的缺陷
-
feat(ts-lib-tools): 支持 simple 模式打包
yarn build --simple
生成的打包文件:
dist |__ index.js |__ index.d.ts |__ sub-pkg |__ index.js |__ index.d.ts |__ package.json |__ esm |__ index.js |__ sub-pkg |__ index.js |__ package.json
- fix(ts-lib-tools): docs、stories 变化不应执行单元测试
- fix(ts-lib-tools): 修复在非 monorepo 模式下打包失败的缺陷
- feat(ts-lib-tools): 从 ts-lib.config.json 中读取
skipTsc
参数
- fix(ts-lib-tools): 修复模块发布时,上传不正确的文件的缺陷
- fix(ts-lib-tools): 修复打包失败的缺陷
- feat(ts-lib-tools):
yarn build
支持--skip-tsc
选项 - fix(ts-lib-tools): 修复 tsc 执行失败未结束编译的缺陷
- fix(ts-lib-tools): 修复从低版本升级到 0.8.0+之后打包后没有引用到 ts 类型文件的缺陷
- chore(ts-lib-scripts): .gitattributes 中添加
\*.snap
文件的换行符定义 - fix: 去掉 */.json 配置,以修复 tsc 编译失败
- chore(ts-lib-tools): tsc 打包时过滤掉测试文件
- fix(ts-lib-tools): 修复无法编译 css 的缺陷
- fix(babel-plugin-clean-type-import-export): 修复清除了已有引用的
import as
表达式的缺陷
- fix(eslint-config-ts-lib): 修复编写 storybook 时提示依赖包没有定义在 dependencies 的错误
- fix(ts-lib-tools): 修复生成小模块丢失 include 关键配置的缺陷
- fix(ts-lib-tools): 修复编译 ts 时报无法找到 json 文件的错误
- fix(ts-lib-tools): 修复项目中引入图片、svg、json 等文件,ts 提示错误的缺陷
- improve: 改善 module css 的语法提示
- fix(babel-reset-ts-lib): 修复不支持空合并语法的缺陷
- fix(ts-lib-tools): rollup 打包时,去掉 ts 类型导入、导出,避免打包失败
- fix(ts-lib-tools): 修复 src/.d.ts 文件拷贝错误
- improve: 采用 tsc 编译生成 .d.ts 文件
- fix(babel-preset-ts-lib): 修复打包的代码无法在旧版本浏览器上运行的缺陷
- chore(eslint-config-ts-lib): 去掉不常用的 eslint 规则,包括
- 去掉
import/no-webpack-loader-syntax
@typescript-eslint/camelcase
对测试文件和 stories 文件放开no-underscore-dangle
对__REDUX_DEVTOOLS_ExTENSION__
放开- 去掉
no-useless-constructor
no-console
对stories
和examples
放开- 去掉
no-empty-function
- 去掉
class-methods-use-this
no-param-reassign
对ref.current
放开
- 去掉
- fix(eslint-config-ts-lib): 去掉 import/no-named-as-default 规则
- fix(eslint-config-ts-lib): 修复 import/extensions 误报 ts, tsx 文件引入错误
- feat: 支持 ts 3.7 新语法
- feat: 调整 eslint 规则,去掉不再使用的规则
- feat(ts-lib-tools): 新增图片的编译
- fix(ts-lib-tools): 修复 jest 无法解析
.module.css
文件的错误
- fix(ts-lib-scripts): 修复 lint-staged 配置错误
- fix(eslint-config-ts-lib): 修复单元测试代码提示
import/no-extraneous-dependencies
错误 - fix(ts-lib-tools): 修复无法添加 Jest 初始化配置文件的缺陷 ( #24 )
- fix(ts-lib-tools): 修复非 monorepo 模式下,单元测试会阻止打包命令执行的错误 ( #23 )
- feat(babel-preset-ts-lib): 内置 babel-plugin-styled-components
- fix(ts-lib-scripts): 修复无法发布 docz 文档的缺陷
- fix(ts-lib-scripts): 修复 git 换行符问题
- fix(ts-lib-scripts): 修复 React 项目模板的单元测试错误
- fix(ts-lib-scripts): 修复 docz 文档模板中 index.html 错误
- fix(ts-lib-scripts): 默认请用 vscode 的
eslint.autoFixOnSave
(eslint 插件的自动保存功能)
- fix(eslint-config-ts-lib): 关闭标准缩进和 typescript 缩进规则,只保留 prettier 缩进规则
- fix(ts-lib-scripts): 修复 monorepo 模板中 lint-staged 范围配置错误
- improve(eslint-config-ts-lib): eslint 集成 prettier 的 fix 功能
- fix(ts-lib-tools): 修复 monorepo 下生成的模块发布时没有带上 dist 目录的缺陷
- fix(ts-lib-tools): 修复打包 esm 时,没有按照 production 模式发布的缺陷
- fix(ts-lib-scripts): 修复在 doc:dev 时,
yarn build
失败的缺陷 (#20)
- fix(eslint-config-ts-lib): 调整 eslint 规则
- 禁用:react/jsx-props-no-spreading
- 禁用:no-explicit-any
- 启用:允许未使用的
_arg
(@typescript-eslint/no-unused-vars) - 启用:允许未使用的
const {arg, ...rest} = obj;
的arg
变量(@typescript-eslint/no-unused-vars) - 启用:允许
console.warn
和console.error
(no-console) - 启用:允许在单元测试中使用
console
api (no-console)
- fix(ts-lib-tools): 修复 dist 目录中多出以模块名为名称的文件夹的缺陷
- fix(ts-lib-tools): 修复缺少 jest-resolver-tsconfig-paths 依赖的错误
- feat: 规范 vscode 的换行符和缩进
- fix(ts-lib-tools): 修复在 monorepo 模式下执行 jest 单元测试失败的缺陷
- fix(ts-lib-tools): 修复 monorepo 模式下,yarn lint 找不到文件的缺陷
- fix(ts-lib-scripts): 修复 monorepo 模式,lint-staged 配置错误
- fix: 修复 prepublishOnly 在 monorepo 模式下配置错误
- feat(ts-lib-tools): 生成模块时添加上许可证信息
- fix(ts-lib-tools): 修复
gen
生成的模块缺少.gitignore,导致将很多临时文件发布到 npm 仓库的缺陷 - fix(ts-lib-scripts): 修复 monorepo 模式,tsconfig.json 的 includes 配置错误
- fix(ts-lib-scripts): 修复 monorepo 模式,tsconfig.json 中的 paths 配置错误
- fix(eslint-config-ts-lib): eslint 的 import/no-unresolved 无法解析
tsconfig.json
的paths
缺陷 - fix(ts-lib-scripts): 修复 docz 文档中无法解析 ts paths 的错误
- fix(ts-lib-tools): 修复 monorepo 中,单元测试包含对模块引用导致单元测试失败的缺陷
- feat: jest 24.8.0 -> 24.9.0
- feat: eslint 5.16.0 -> 6.1.0
- fix(ts-lib-tools): 修复 lint 命令行范围错误
- fix(ts-lib-tools): package.json 中的 esm 包应引用.esm.development.js 文件 (#18)
- improve(ts-lib-tools): 不需要打包.esm.production.js (#18)
- BREADK CHANGE(ts-lib-scripts): package.json 的
module
引用<moduelName>.esm.js
- fix(ts-lib-tools): 修复 monorepo 模式下打包时.d.ts 文件路径错误
变更 1:
由于 eslint 相关插件的升级,eslint 规则有所变化,需要在项目中执行下面的命令行:
yarn lint --fix
变更 2:
package.json 的module
从<moduleName>.es.prodution.js
改成了<moduleName>.esm.js
。已经使用 ts-lib-scripts 的项目会在build
时自动调整module
。
- chore(ts-lib-scripts): 调整 jest-dom 为@testing-library/jest-dom
- chore(ts-lib-scripts): 添加@testing-library/react-hooks,方便做 react hooks 的单元测试
- fix(ts-lib-scripts): 修复未开启 docz,但是生成项目的 README.md 中有 doc 相关命令行说明的缺陷
- fix(ts-lib-scripts): 修复 monorepo 项目中多出 src 目录的缺陷
- fix(ts-lib-scripts): 修复 monorepo 项目中多出 src 目录的缺陷
- fix(ts-lib-scripts): 修复 tsconfig 配置错误,导致 ts 找不到内部模块的缺陷
- feat(babel-preset-ts-lib): babel 支持从 tsconfig.json 文件中读取
paths
,作为自定义的模块路径映射 - feat: 支持 monorepo
- fix(ts-lib-scripts): 修复 docz 若干问题
- fix(ts-lib-tools): 修复依赖关系错误
- fix(ts-lib-tools): 修复依赖关系错误
- fix(ts-lib-tools): 修复包括 lodash 导致单元测试失败的缺陷 (#13)
- fix(ts-lib-tools): 修复生成 jest 配置错误。
- improve(ts-lib-tools): 改进 jest 的监听范围,不再监听生成的文件。
- fix(webpack-docz-ghpages-plugin): 修复实现错误
- fix(webpack-docz-ghpages-plugin): 修复包主文件错误
- fix: 修复 docz 文档发布到 ghpages 上之后,刷新页面进入 404 的缺陷
对于已有项目,手动调整一下:
-
添加 webpack-docz-ghpages-plugin 依赖
yarn add webpack-docz-ghpages-plugin --dev
-
调整
doczrc.js
文件:+ config.plugin('ghpages').use(require('webpack-docz-ghpages-plugin')); return config;
- fix(ts-lib-scripts): 修复发布文档命令错误
对于已有项目,手动调整一下package.json
:
- "doc:publish": "docz dev && gh-pages -d .docz/dist"
+ "doc:publish": "docz build && gh-pages -d .docz/dist"
- fix(ts-lib-tools): 代码中包含@sinoui, sinoui-components 时,jest 单元测试失败
- fix(ts-lib-scripts): 修复 typescript 自动导入时引入了 amd 路径的错误
v0.2.6 发布失败,再次发布。
- fix(eslint-config-ts-lib): 去掉多余的 react 属性校验
- fix(ts-lib-scripts): 修复 GIT 换行符配置错误
对于历史项目,可以手动调整.gitattributes
文件:
*.ts text eol=lf
*.tsx text eol=lf
*.js text eol=lf
*.jsx text eol=lf
*.md text eol=lf
*.mdx text eol=lf
*.json text eol=lf
*.lock text eol=lf
.editorconfig text eol=lf
.gitignore text eol=lf
.gitattributes text eol=lf
*.txt text eol=lf
LICENSE text eol=lf
[core]
autocrlf=input
safecrlf=true
- fix(ts-lib-scripts): 修复 GIT 换行符配置错误
对于历史项目,可以手动调整.gitattributes
文件:
*.ts text
*.tsx text
*.js text
*.jsx text
*.md text
*.mdx text
*.json text
*.lock text
.editorconfig text
.gitignore text
.gitattributes text
*.txt text
LICENSE text
[core]
autocrlf=input
safecrlf=true
- fix(ts-lib-scripts): 修复 gitattributes 配置错误
- fix(babel-preset-ts-lib): 修复 jest 可能执行失败的缺陷
- fix(ts-lib-tools): 修复打包失败却没有正常结束打包进程的错误
- feat: 创建 React 组件库 🌈
- feat(ts-lib-scripts): 创建项目时,可指定域名项目名称,如:
npx ts-lib-scripts create @sinoui/my-ts-lib
。 - feat(ts-lib-tools): 支持在
src
中直接定义.d.ts
文件 - fix(ts-lib-tools): 修复
index.ts
中导出了 ts 类型导致编译失败的缺陷 - feat(eslint-config-ts-lib): eslint 检查支持 immer
- fix(ts-lib-scripts): 修复 git 换行符问题
- feat(ts-lib-tools): 打包前清除
dist
文件 - fix(ts-lib-tools): 修复打包失败却仍可发布的缺陷
- fix(ts-lib-tools): 包含 async/await 代码时导致
start
失败的缺陷 - fix(ts-lib-scripts): 修复无法在 mac 创建项目的缺陷
- fix(eslint-config-ts-lib): 修复 prettier 与 react eslint 规则冲突的缺陷
- feat(ts-lib-scripts): 启用ts incremental
对于历史项目,需要手动调整:
-
升级
ts-lib-tools@0.2.0
:{ "devDependencies": { "ts-lib-tools": "^0.2.0" } }
-
为了更好的解决换行符的问题,可以在项目的根目录下添加
.gitattributes
文件,内容如下:(选做)[core] autocrlf = input safecrlf = true
-
在
tsconfig.json
中添加incremental
:(可选){ "compilerOptions": { "increumental": true } }