jaredpalmer/tsdx
Zero-config CLI for TypeScript package development
๐ Major Changes
- [#1202](https://github.com/jaredpalmer/tsdx/pull/1202) [`6fcfef1`](https://github.com/jaredpalmer/tsdx/commit/6fcfef1dcb1c1d7f9f2c04969ee208a702876140) Thanks [@jaredpalmer](https://github.com/jaredpalmer)! - Initial 2.0.0 release - complete rewrite with modern Rust-based tooling
- Bundling with bunchee
- Testing with vitest
- Linting with oxlint
- Formatting with oxfmt
- Project scaffolding with basic and react templates
๐ Bugfixes
- An upstream cache bug that affected certain combinations of build formats has been fixed
- The error that was fixed would look similar to:
- ```txt
- ```
- The built-in `lodash` -> `lodash-es` replacement no longer breaks imports of `lodash/fp`
๐ฆ Dependencies
- The warning about incompatible peerDeps from `eslint-config-react-app` has been resolved
- <hr>
๐ฆ Commits
- <details>
- <summary>Lists of commits:</summary>
๐ Bugfixes
- fix/deps: upgrade rpts2 to fix cache issue (#896) eaa1c3b
- fix: don't replace lodash/fp imports with lodash-es/fp (#884) 8b91c74
๐ฆ Dependencies
- Use compatible eslint-config-react-app and eslint-plugin-react-hooks. (#890) 57f7dcc
๐ฆ GitHub
- Create CODE_OF_CONDUCT.md (#899) e3e80d6
๐ฆ Internal
- test: add a smoke test that builds _all_ formats (#896) e2f1b76
- test: ensure lodash-es replacement is done properly (#884) 9c4ce68
๐ฆ All Contributors
- docs: add tanem as a contributor (#902) 81c8b2d
- docs: add altrim as a contributor (#895) d292dd9
- docs: add ludofischer as a contributor (#894) da53ea8
๐ฆ Commit Range
- https://github.com/formium/tsdx/compare/v0.14.0...v0.14.1
- </details>
๐ฅ Slightly Breaking Changes
- Updated the required Node version from 8 to 10.
- While previous versions of TSDX began deprecating support for Node 8, it was not officially dropped.
- In this release, we have officially dropped Node 8: TSDX now requires Node 10+ as many dependencies that were upgraded similarly do.
- This should not impact most users as Node 8 has been EoL for ~9 months now.
- Many packages had already required Node 10+ and the vast majority already have support for it.
- Most users are on Node 12 or Node 14 already.
- Updated the Jest version used by `tsdx test` from 24 to 25.
- The main breaking change in Jest 25 is the upgrade of the default JSDOM environment from JSDOM v11 to JSDOM v15.
- + 9 more
๐ฆ Improvements
- Jest 25 / JSDOM 15 usage per above
- Due to the `babel-plugin-polyfill-regenerator` change above, TSDX now supports polyfilling generators out-of-the-box. Previously we only supported async/await with `babel-plugin-transform-async-to-promises` and required users to configure their own plugins for generator polyfilling
- `styled-components/macro` support per above
- A `--max-warnings` flag has been added to `tsdx lint`, which works the same as [ESLint's `--max-warnings` flag](https://eslint.org/docs/user-guide/command-line-interface#handling-warnings)
๐ฆ Template Improvements
- Storybook template has been updated to Storybook v6, which significantly simplifies the config and adds some features
- Storybook template has now been configured to type-check during Storybook builds
- [`size-limit`](https://github.com/ai/size-limit) has been added to all templates for bundle analysis via NPM/Yarn scripts and a GitHub Action
- All templates' GitHub Actions now have matrix testing for different Node versions and OSes out-of-the-box
- All templates' GitHub Actions now have simplified config and improved caching using [`bahmutov/npm-install`](https://github.com/bahmutov/npm-install)
- All templates' [`tsconfig.json`](https://www.typescriptlang.org/tsconfig) now set `skipLibCheck`, `forceConsistentCasingInFileNames`, and `noEmit`
- The former two are now [recommended by TS](https://github.com/tsconfig/bases/blob/master/bases/recommended.json) and the latter one is just a usability improvement for those who use `tsc` for type-checking. `skipLibCheck` will also greatly increase performance of `tsc`'s type-checking
- All templates' `tsconfig.json` now have detailed comments explaining nearly every configuration option in use
๐ Docs
- [`patch-package`](https://github.com/ds300/patch-package) is now officially listed as a customization option
๐ฆ Dependencies
- Jest 25 and Node 10+ per above. Most deps were updated by a major or two.
- `@babel/preset-env` was updated to the latest minor to support nullish coalescing and optional chaining without additional plugins, as well as to update the compatibility table.
- If you have snapshots that rely on specific output from `preset-env` or Autoprefixer, as TSDX's internal test suite does, you may need to update those snapshots.
- All vulnerabilities and deprecation warnings should now be resolved
- Due to some upgrades, clean-up, and use of [`yarn-deduplicate`](https://github.com/atlassian/yarn-deduplicate/), overall install size should have decreased a good bit
- <hr>
๐ฆ Commits
- <details>
- <summary>Lists of commits:</summary>
๐ฆ Improvements
- Add `--max-warnings` flag to `tsdx lint` (#858) dd92fec
๐ Bugfixes
- change: replace useBuiltIns with polyfill-regenerator (#795) 6e405d5
- change: replace async-to-promises with regenerator (#795) 2aefc3d
- (fix): change plugin order to make styled-components/macro work (#644) 6d7257c
๐ฆ Template Improvements
- feat: type-check stories during Storybook build (#876) f1ddccb
- feat: add test matrix to all templates' CI (#882) 8449699
- fix: use @bahmutov/npm-install in templates' CI (#882) f109fe9
- Remove redundant CI=true from templates' github workflows (#870) 6ba173f
- docs: add comment that noUnused* overlaps with an ESLint rule (#864) e50bc51
- docs: add comments for nearly all tsconfig options in use (#864) 10a6137
- feat: add noEmit to templates' tsconfigs (#864) c802b8b
- feat: add skipLibCheck and forceConsistentCasingInFileNames (#864) e0f79fe
- + 2 more
๐ Docs
- docs: remove reference to Node 10+ req for create (#881) a95d2d8
- multi-entry: temporarily change docs to singular "module" (#862) ac98a73
- docs: capitalize 'S' in TypeScript (#752) da4b189
- docs: add `patch-package` reference to Customization section (#855) 08a8ef8
- docs: update features and comparison with changes from past year (#847) 1619bc1
- docs/fix: missing "to" infinitive marker (#843) 49fb303
๐ฆ Dependencies
- deps: upgrade several more deps' majors (#879) a9434f9
- deps: update extractErrors plugin's evalToString file (#878) 0e45050
- deps: update extractErrors Babel plugins to Babel 7 (#878) 33a6bde
- license: add FB License header to all extractErrors code (#878) 2caad24
- Migrate from rollup-plugin-babel to @rollup/plugin-babel (#789) f592595
- fix/deps: dependabot YAML doesn't support anchors/aliases (#850) f8b8317
- env/deps: remove greenkeeper.json, configure dependabot.yml (#846) 45aea66
- deps: upgrade Babel preset-env, remove now redundant plugins (#838) 8e2d750
- + 5 more
๐ฆ GitHub
- github: use envinfo for getting versions in issue reports (#820) 349f299
๐ฆ Internal
- ci: make internal job names more consistent w/ templates' (#882) 49a3521
- ci: update matrix to use Node 14 instead of Node 13 (#880) dac1fd7
- clean: bad whitespace and Flow types in extractErrors (#878) 2d0f279
- test: compatible targets shouldn't insert regeneratorRuntime (#795) 794e5ad
- test: add an async syntax regression test (#795) 814c83b
- refactor/test: move generator test to build-default (#795) 2f8544d
- ci: add deduplicate:check script and run on precommit and CI (#683) 22133ce
- deps: update np to fix MFA bug during publishes (#816) fff9a43
๐ฆ All Contributors
- docs: add felixmosh as a contributor (#883) 427e5ad
- docs: add vladdy-moses as a contributor (#877) 7edf7ea
- docs: add in19farkt as a contributor (#875) ade9483
- docs: add CyriacBr as a contributor (#874) 0032086
- docs: add seungdols as a contributor (#873) ae15bd3
- docs: add hb-seb as a contributor (#872) 33c8317
- docs: add KATT as a contributor (#868) f6c296a
- docs: add thany as a contributor (#867) d996a0e
- + 9 more
๐ฆ Commit Range
- https://github.com/formium/tsdx/compare/v0.13.3...v0.14.0
- </details>
- <hr>
๐ฆ Postscript
- Best wishes and stay safe to everyone!
๐ฆ Optimizations
- Types are only checked once now, type declarations are only emitted once now, and cache is shared with all formats
- Previously it was once per each format
- This was a roughly 15-30% perf boost altogether on the TSDX test suite, but YMMV
๐ Template Bugfixes
- Templates no longer have `baseUrl` or `paths` set in their `tsconfig`, fixing a long-standing bug
๐ Template Docs
- Template READMEs have been significantly improved, adding consistency between all 3, fixing outdated portions, and better describing certain behaviors
๐ฆ Commits
- <details>
- <summary>Lists of commits: </summary>
๐ฆ Optimizations
- optim: only check types once (#758) 79dddc4
- (optim): no need for separate cacheRoot per format (#691) 3357cbf
- (optim/fix): only emit type declarations once (#691) 6929300
๐ฆ Template Improvements
- deps: upgrade actions/cache to v2 in all templates (#750) 984e024
๐ Template Bugfixes
- (fix): templates should not have baseUrl or paths set (#707) 17ffcd2
๐ Template Docs
- (docs): basic template README should be like React ones (#706) e7128f8
- (docs): add GitHub Actions info to template CI READMEs (#706) effdc31
- (docs): remove duplicative "Using the Playground" section (#706) f360f9b
- (docs): improve consistency in template READMEs (#706) 356bbda
- (docs): remove version/permalink refs in template READMEs (#706) 76a0530
- (docs): update outdated Jest info in template READMEs (#706) d4ff914
๐ Docs
- lint: manually fix new website ESLint errors and warnings (#794) 9fea19d
- format: auto-fix new website formatting errors (#794) 3dfdafb
- format: auto-fix help dialog formatting error (#794) 99d982a
- Update features.js f0963cb
- Fix edit link e85b9ab
- Remove unused image 4f6bdb4
- Remove docusaurus site 1b3452b
- Put up redirect at old docs site 5f49acd
- + 7 more
๐ฆ GitHub
- github: disable blank issues without an issue template (#814) 0139cae
๐ฆ Internal
- greenkeeper: remove website from greenkeeper config (#815) fc22471
- (clean): remove redundant tsconfig strict opts in tests (#690) 5c73483
- Simplify getInputs function (#745) 14bfa39
๐ฆ All Contributors
- docs: add devrelm as a contributor (#777) 5e5c3f8
- docs: add jssee as a contributor (#776) 1225a92
- docs: add yuriy636 as a contributor (#775) 267e488
- docs: add dandv as a contributor (#774) b344c9e
- docs: add bmihelac as a contributor (#773) 32126c3
- docs: add Semperia as a contributor (#772) f1335f1
- docs: update org for all-contributors (#772) 12971e5
๐ฆ Commit Range
- https://github.com/formium/tsdx/compare/v0.13.2...v0.13.3
- </details>
- <hr>
๐ฆ Postscript
- Wishing everyone well! Please stay safe and please do your part to follow public health guidelines!
- โ Quoting from [a Chromium release](https://bodhi.fedoraproject.org/updates/FEDORA-2020-08561721ad) โ :
- > Open Source proves that many voices, many contributions, together can change the world. It depends on it. This is my voice.
๐ Bugfixes
- `@types/jest` was moved to be a dependency instead of a devDependency. It has also been removed from the templates.
- This should fix any version mismatch issues that were occuring, like using `@types/jest` v25 but Jest v24.
- Stay tuned for an upgrade to Jest v25 in the next minor release of TSDX
- `semver` was also moved from devDependency to dependency. It's used in `tsdx create`, so it was misplaced.
๐ฆ Template Improvements
- Several redundant `tsconfig` `compilerOptions` have been removed. `strict` already includes all of these.
- <hr>
๐ฆ Commits:
- <details>
- <summary>Lists of commits: </summary>
๐ Bugfixes
- (fix/deps): semver should be a dep, not a devDep (#677) 094fe5e
- (fix): @types/jest should be a dep, not a devDep (#672) 2930943
๐ฆ Template Improvements
- (clean): remove redundant tsconfig strict opts in templates (#673) 2dd4396
๐ฆ Internal
- (docs/types): add comments to some remaining declarations (#675) 72092c8
- (deps/types/clean): remove extraneous typings (#675) c9a719a
- (deps/clean): remove unused @types/ms devDep (#674) eaa5da7
- (clean): remove redundant set of watch opts (#671) 351936e
๐ฆ All Contributors
- docs: add kotarella1110 as a contributor (#680) 51cd32f
- docs: add rockmandash as a contributor (#676) 92747f8
- docs: add ambroseus as a contributor (#670) 72c06b9
๐ฆ Commit Range
- https://github.com/jaredpalmer/tsdx/compare/v0.13.1...v0.13.2
- </details>
- <hr>
๐ฆ Postscript
- Wishing everyone well during the pandemic! Please stay safe and please do your part to follow public health guidelines!
- If you're looking for more ways to help out, there are many, many around and likely local initiatives where you live. I also included a small few I stumbled upon in the previous release postscript.
๐ Template Bugfix
- `tsconfig.json` `include` was changed to remove `test` from the array. This faulty include resulted in declarations being generated in `dist/` for test files as well as slowing down builds. It was also the cause of TS errors around v0.13.0's change to `rootDir: './src'`
๐งช Tests
- Testing has been significantly improved in the commits leading up to this release, including:
- creating an integration test set-up
- creating many integration tests
- migrating the tests to TypeScript (they were previously 99% JS)
- <hr>
๐ฆ Commits:
- <details>
- <summary>Lists of commits: </summary>
๐ Template Bugfix
- (fix): remove faulty tsconfig.json include of test dir (#646) aa09dcb
๐ฆ Internal
- (format): format all files, not just src/ and test/ (#648) 3cb3841
- (refactor): make preset-env variable naming more explicit (#643) 477a6dd
- (clean): remove unused test/utils/psKill and its deps (#627) 9f559fa
- (clean): remove some unnecessary internal declarations (#637) 985a97b
- (clean): remove all references to --define (#636) 6e34b20
- (refactor): migrate all tests and test helper code to TS (#649) 863c56d
- (docs/fix): remove erroneous Test README sub-header 9fde343
- (test): ensure Babel presets are merged and applied (#627) ee391e4
- + 11 more
๐ฆ All Contributors
- docs: add lookfirst as a contributor (#651) 7364efe
๐ฆ Commit Range
- https://github.com/jaredpalmer/tsdx/compare/v0.13.0...v0.13.1
- </details>
- <hr>
๐ฆ Postscript
- Wishing everyone well during the pandemic! Please stay safe and follow the guidelines of public health officials, for yourself, for your family, and for everyone else and their families!
- There's also lots of ways to help out, here's just a few I've stumbled upon:
- https://foldingathome.org/
- https://stackoverflow.blog/2020/03/26/ways-to-help-the-fight-against-covid-19-from-home/
- http://hackathon.gogcrc.org/
- [#BuildforCOVID19](https://twitter.com/hashtag/buildforcovid19)
- https://covid19responsefund.org/
- https://www.gofundme.com/c/act/covid19
- + 1 more
๐๏ธ Deprecations
- `tsconfig.json` `rootDir` has been changed to `./src`. `./` is now deprecated and will give a warning
๐ฆ Improvements
- Async Rollup Plugins for `tsdx.config.js` are now supported out-of-the-box (no more need for hacks like `objectHashIgnoreUnknownHack`)
- Jest's `--config` flag is now respected
- `tsconfig.json`'s `declarationDir` is now respected
- Much better support of JS & JSX files in build, test, and lint. This should enhance the gradual migration experience quite a bit
- Co-located test files are ignored during build by default now (so unnecessary declarations aren't generated for them)
๐ Bugfixes
- Babel presets should no longer be ignored and will be merged with TSDX's defaults
- Multiple JSX -> JSX imports should resolve correctly now
- `src/index.jsx` will now be parsed as an entry file (previously only `.ts`, `.tsx`, and `.js` were)
- `esModuleInterop` should be properly read now for the purposes of configuring Rollup's `esModule` / CJS `__esModule` -- a bug made it so these were always added previously. This does not impact parsing of `esModuleInterop` for anything else, which worked correctly and still does.
- Jest transform regexes are now properly anchored, non-TS/TSX files shouldn't be passed to `ts-jest` anymore
- Jest config parsing now errors loudly instead of silently during failures
- Async Rollup Plugins in `tsdx.config.js` don't bug out anymore
๐ฆ Templates
- Storybook template has been significantly upgraded and patched
- GH Actions have been added to all templates
- `tsconfig.json` `rootDir` has been changed to `./src`. `./` is now deprecated and will give a warning
- Confusing `tsconfig.json` `target` has been removed as it is not currently configurable (configured with `@babel/preset-env` instead)
- `src` is now included in `package.json` `files` to improve debugging
- Node version requirement is enforced when creating templates
- <hr>
๐ฆ Commits:
- <details>
- <summary>Lists of commits: </summary>
โจ Features
- (feat): support custom jest config paths via --config (#526) 16459df
- (feat): use tsconfig declarationDir is set (#468) b23f158
- (feat): support JS & JSX files in tsdx test (#486) 424fc25
- (feat): support JS & JSX files in tsdx lint (#487) 655bb53
- Ensure co-located test files don't have definitions generated (#472) a56894f
๐ Bugfixes
- Add JSX extension to @rollup/plugin-node-resolve options (#524) 735f301
- (fix): correctly read tsconfig esModuleInterop (#555) c12f92c
- (fix): parse tsconfig extends, trailing commas, and comments (#489) ad33c01
- (fix): if custom jest config path, use its dir as rootDir (#526) f19fa61
- (fix/types): fix internal & external declaration errors (#542) d164dd2
- (deps/fix/types): upgrade rollup & fix event type issues (#544) edd8045
- (fix): watch examples should only show watch command (#537) e2a91ad
- anchor regexps for jest transforms (#513) 1b1b9f8
- + 5 more
๐ฆ Templates
- Add 'src' to package.json files to improve source maps (#620) 287dc44
- (remove): redundant/confusing tsconfig target in templates (#466) 670cc56
- (fix): set rootDir to './src', not './'. deprecate moveTypes (#504) 68f26c9
- Add GH Action configs for each template (#457) 21893b8
- (fix) Enforce Node version for tsdx create, update documentation to express requirement. (#433) 9f183e7
- Integrate new Storybook config (#435) 1d8f123
๐ Docs
- (fix/docs): `test` script doesn't run Jest in interactive mode (#536) a2e4b78
- (docs/fix): remove outdated language about custom Babel configs (#467) 1269115
๐ฆ Dependencies
- Bump acorn from 5.7.3 to 5.7.4 (#580) 3462576
- (deps): remove unused cross-env, cross-spawn, chokidar-cli (#553) ab73e25
- (refactor): replace rimraf, mkdirp, util.promisify with fs-extra funcs (#501) 3a6d42f
- Update husky to the latest version ๐ (#507) 6a0a2c5
- Update cross-env to the latest version ๐ (#459) 4f6de10
- Update @rollup/plugin-node-resolve to the latest version ๐ (#477) 1a7d816
- Revert "chore(package): update @types/jest to version 25.1.0 (#462)" (#470) f12fcdf
- chore(package): update @types/jest to version 25.1.0 (#462) 95ff6da
- + 1 more
๐ฆ Internal
- (ci/optim): add caching for yarn install (#625) 18e3c05
- Add publish npm script (#582) 77e7c70
- (clean): remove unused fixture test directories (#626) 82e764f
- (ci): remove experimental --runInBand as tests pass now (#624) 0f72117
- (optim/ci): don't build a second time for lint or test (#623) 6679c23
- (refactor): use outputFile instead of mkdirs + writeFile (#617) b21d7af
- (test): ensure custom --tsconfig path is correctly read (#556) 3530265
- (types): improve typings for Jest config (#526) 9fef652
- + 4 more
๐ฆ All Contributors
- <details>
- <summary> Expand very long list. All historical contributors were added during this release. </summary>
- docs: add justingrant as a contributor (#622) 3a6e098
- docs: add github as a contributor (#616) d4dd010
- docs: add dependabot[bot] as a contributor (#615) 6b9f205
- docs: add allcontributors[bot] as a contributor (#614) e0e1a79
- docs: add greenkeeper[bot] as a contributor (#613) 60cc280
- docs: add Carl-Foster as a contributor (#611) 8b2fb0c
- + 70 more
๐ฆ Commit Range
- https://github.com/jaredpalmer/tsdx/compare/v0.12.3...v0.13.0
- <hr>
๐ฆ Postscript
- Wishing everyone well during the pandemic!
๐ฆ Patch
- `tsdx test` no longer defaults to watch mode in interactive environments. This reverts previous behavior which caused bugs.
- Commits
- Run tests in series with --runInBand (#429) 367a7a5
- Deprecate Node 8 support (#426) bd35f65
- Revert "default jest watch unless in CI" PR #366 (#421) 95ac3f4
- Drop Node 8 from test matrix f1cf8b1
- https://github.com/jaredpalmer/tsdx/compare/v0.12.2...v0.12.3
๐ฆ Patch
- Fix issue with TS compilation. Please upgrade to 12.2, as builds are inconsistent.
- Commits
- (docs): add contributing guidelines (#417) e5747fd
- Fix onFailure example (#416) 9e8ab92
- (fix): revert #130's breaking change of tsconfig options (#415) 00f80ac
- (refactor): replace ensureDistFolder with fs.outputFile (#406) ea124bc
- upgraded rollup-plugin-'s to @rollup/plugin-'s. (#411) cfc1e76
- (docs): add warning to tsdx.config.js usage (#400) 35fa947
- + 4 more
๐ฆ Improvements
- Add success/failure flags
- Add `transpileOnly` flag
- ```diff
- Description
- Rebuilds on any change
- Usage
- $ tsdx watch [options]
- Options
- + 24 more
๐ Bugfixes
- Fixed jest watch mode
- Commits
- (refactor): invert if in run function (#404) e1370de
- (optim/test): use node testEnvironment (#405) ec0f285
- (clean): remove --env=jsdom as JSDOM is Jest's default (#396) 7c79b74
- (format): alphabetize package.json deps (#398) 27ba1dd
- (docs/fix): fix ToC changes / bugs introduced in #307 (#397) 387f3c2
- (docs): improve test watch mode docs (#395) 531010e
- + 6 more
๐ฆ Improvements
- Added Storybook template
- Upgraded to Ts 3.7.x
- Updated rollup deps / plugins
- Moved the cache root to be inside of `node_modules`, you can delete the .rts2_cache_xxx folders from root and remove them from your .gitignore files
- (internals) Made internal methods async where possible, should result in a minor speed boost.
- Added optional chaining and nullish coalescing operators support
- When running in an interactive shell (i.e. if `process.env.CI` `false`), `tsdx test` now runs Jest in watch mode. Note: Most CI services set `CI` env variable to true by default. Our implementation is exactly how create-react-app does it.
- `tsdx test` will pass in cases where no tests exist
- + 1 more
๐ Bugfixes
- Fix error when providing babel/preset-env without options
- Got rid of eslint warning upon install
- (Internal) Tests now run on PRs
- Do not output warning about react on non-react projects
๐ฆ Roadmap
- Add Closure Compiler
- Better support for "preshaking" and top level exports
- Monorepo support. Note: Formik is now using lerna and TSDX, so we'll be using it as a playground
- Commits
- (deps/lint): upgrade @typescript-eslint to support ?. and ?? (#377) 843c676
- (ci): add a lint job so PRs will require passing lint (#378) 930feb9
- (clean): remove .rts_cache_* from storybook gitignore (#375) c5df5ac
- Add optional chaining and nullish coalescing operators support (#370) a736c77
- + 42 more
๐ Bugfixes
- Rollback to `rollup-plugin-typescript2`. TSDX now generates types properly--again. SORRY about that folks.
๐ฆ Improvements
- Added support for eslint report: new flag `--report-file`
- Added `--noClean` option for watch
- Commits
- Update to @types/react 16.9.11 (#288) 870d05a
- Remove confusing comment (#286) 3352220
- fix: rollback typescript plugin to avoid babel config conflicts (#287) 3989277
- --noClean option for watch (#282) 9c10c70
- docs: clarify effect of propertyReadSideEffects (#280) 5becff1
- + 5 more
๐ Changes
- Fix #263. Move shelljs to deps 7030097
๐ฆ Improvements
- `tsdx create` will now default to an MIT license
- `tsdx create` will try to pull author info for `package.json` from git and npm configs or fallback to a cute lil' prompt. This is to ensure that the bootstrapped package is publishable immediately.
- Commits
- feat: MIT License by default (#244) 0f965a6
- https://github.com/jaredpalmer/tsdx/compare/v0.10.1...v0.10.2
๐ Bugfixes
- Remove TypeScript as peer-dep (this fixes `npx tsdx create` if you don't have TS installed globally)
- Updated deps
- Add back support for Node 8.12+
๐ฆ Improvements
- Move progress estimator cache location to `node_moudles/.cache/.progress-estimator`.
- Commits
- Lazily initialize progress estimator cache (#262) 7d8c0cf
- Fix logger integration (#256) fcfc3ac
- Remove TS as peer dep (#261) a59d62a
- Add back support for node 8 (#250) eb0383b
- Update execa to the latest version ๐ (#257) a15630a
- Use dist path config (#251) e44cbde
- + 6 more
๐ฆ Improvements
- Support for async/await in rollup plugins
- Added `system` to `format` options
- Added support for `jest.config.js` (it will merge with the defaults)
- TSDX will now clean the `dist` directory on `tsdx build`
๐ Bugfixes
- Fixed missing `eslint` deps
๐ฅ POSSIBLY BREAKING
- Dropped support for Node 8 because we moved to @wessberg/rollup-plugin-ts
- Commits
- Merge pull request #242 from audiolion/patch-1 1a62579
- fix: failing builds 90ecbfc
- fix(testing): add support for jest.config.js (#229) 22c2416
- feat: clean dist dir on build (#240) b86f715
- docs: add skvale as a contributor (#237) dbc3d70
- docs: add JasonEtco as a contributor (#236) 543c8d0
- + 8 more
๐ Bugfixes
- `tsdx lint` command no longer swallows errors
- Commits
- remove async; fix test (#212) afb0281
- Merge pull request #209 from skvale/fix/196-npx-lint-without-input-files 727f71c
- feat(lint): Use src test as default input files if none are specified 3d202cf
- [Deploy Playground] Fix Netlify build command (#207) 24a1fdc
- Update README.md 0111130
- [Deploy Playground] Fix Netlify build command 26ee608
- + 1 more
๐ Bugfixes
- Fix lint command by allowing use --write-file flag
๐ฆ Internals
- Using TS 3.6.2 internally
- Fix race condition between build and lint tests
- The test suite now runs against Node 8, 10, 12 x macOs, ubuntu, and windows latest (yay GitHub CI!)
- Alpha website! (https://tsdx.netlify.com) (needs some design love and dark mode)
- Commits
- Remove --runInBand flag 9082695
- Fix race condition btwn build and lint tests 6e77e91
- Upgrade typescript to 3.6.2 (#205) c1197d7
- + 7 more
๐ Bugfix
- Fixed regression where lodash imports were being rewritten in CommonJS builds.
- Fixed lint command
- Commits
- Don't replace imports in cjs build (#192) 790e781
- Fix lint command usage by husky and required files (#189) 8197e0f
- Add local react fix to gitignore c6d2ef3
- https://github.com/jaredpalmer/tsdx/compare/v0.9.0...v0.9.1
๐ฆ Improvements
- `--extractErrors` has been changed to a boolean. It will just default to use a dummy URL in the `ErrorProd.js` component.
- You can now extend TSDX's rollup configuration with `tsdx.config.js`. TSDX uses Rollup under the hood. The defaults are solid for most packages (Formik uses the defaults!). However, if you do wish to alter the rollup configuration, you can do so by creating a file called `tsdx.config.js` at the root of your project like so:
- ```js
- // Not transpiled with TypeScript or Babel, so use plain Es6/Node.js!
- module.exports = {
- // This function will run for each entry/format/env combination
- rollup(config, options) {
- return config; // always return a config.
- + 49 more
๐ฆ Babel
- You can add your own `.babelrc` to the root of your project and TSDX will merge it with its own babel transforms (which are mostly for optimization).
- Commits
- Merge branch 'master' of github.com:jaredpalmer/tsdx 19c2834
- Extensible Rollup configuration (#183) cb2cf7c
- Merge branch 'master' into v0.9 a1827e4
- Merge pull request #185 from honzabrecka/update-babel-plugin-transform-async-to-promises 7bf3032
- update babel-plugin-transform-async-to-promises dependency 5838fe7
- add fixture 990f115
- + 8 more
๐ฆ Improvements
- Added experimental `--extractErrors` flag
- Added ability to specify path to a custom `tsconfig.json`
- Added `--template` flag to `tsdx create` So you can run `npx tsdx create --template=react` now.
- Relaxed Jest's `testMatch` flag and made it overridable..
- Added `tsdx lint` command with eslint x typescript x prettier.
๐ Bugfixes
- Gracefully exit with code 1 when build failed (breaking change)
- Ignore ESM cache
๐ฆ Internal Stuff
- Dropped CircleCI for GitHub CI!
๐ฆ Migration Guide
- To take advantage of `tsdx lint`, simply add a npm script to your `package.json` like so.
- ```diff
- {
- "scripts": {
- "start": "tsdx watch",
- "build": "tsdx build",
- + "lint": "tsdx lint"
- }
- + 23 more
๐ฆ Patch
- Updated .gitignore in the templates to ignore the new esm cache
- Commits
- fixed issue mentioned in #148 - Gitignore contains '.rts2_cache_esm' (#149) 98cf1db
- https://github.com/jaredpalmer/tsdx/compare/v0.7.1...v0.7.2
๐ฆ Patch
- Fixed the module field in templates to reflect the new name of the ESM output bundle.
- Commits
- HOTFIX: Fix module field in template pkg.json ab22779
- https://github.com/jaredpalmer/tsdx/compare/v0.7.0...v0.7.1
๐ฅ Breaking Changes ๐จ
- TSDX will no longer build a UMD bundle by default, you now must specify it using the `--format=umd,esm,cjs`
- Renamed `es` format to `esm`. So `--format=es` -> `--format=esm`. In addition, the ESM output bundle is now named `<packagename>.esm.js`, so update your `package.json` `module` field accordingly.
- ```diff
- {
- "name": "formik",
- "main":"dist/index.js",
- "module": "dist/formik.es.production.js",
- + "module": "dist/formik.esm.js",
- + 5 more
๐ฆ Improvements โจ
- Builds will be much faster by default since TSDX no longer builds UMD by default.
- New spiffy ascii art when bootstrapping a new project
- The react example now aliases the profiler build of react-dom so you can more easily do perf analysis and profiling.
- Commits
- strip package scope in safePackageName function (#146) 4422366
- No env specific bundle for ESM (#142) 0f9d964
- Don't depend on specific TS version (#147) 830e104
- Merge pull request #145 from quentin-sommer/patch-1 2fb7e05
- + 9 more
โจ What's New?
- Add ability to specify custom tsconfig.json by passing `--tsconfig` flag
๐ Bugfixes
- Fixed `@babel/preset-env` resolution
- Commits
- Use `require.resolve` for `@babel/preset-env` 823acc9
- feat(custom-tsconfig): Add ability to specify custom tsconfig.json (#124) 22ee1d0
- Fix React template .gitignore (#123) 8d9d478
- Document react template usage with lerna (#119) 2567ff8
- https://github.com/jaredpalmer/tsdx/compare/v0.6.0...v0.6.1
๐ฆ Improvements
- Better transpilation via babel-preset-env and a few generator plugins.
- Fixed shebang woes so making CLI's should work again
- Commits
- Better compilation via Babel (#117) b6492a1
- @babel/preset-env (#102) 988cc1f
- https://github.com/jaredpalmer/tsdx/compare/v0.5.12...v0.6.0
๐ Bugfix
- Make `es5` the default target for typescript.
- Commits
- Remove esnext target override from ts rollup config. Make es5 the default target. (#111) e06d690
- Update CONTRIBUTING.md e040514
- Update CONTRIBUTING.md 9cc322e
- Create CONTRIBUTING.md (#108) 779e156
- Add prepare npm task 74c9a9d
- https://github.com/jaredpalmer/tsdx/compare/v0.5.11...v0.5.12
๐ Changes
- Cosmetic change 57cb370
๐ Changes
- Fix rollup config 71817a3
- Turn off lodash replacement in cjs af526a5
- add initial React user guide (#74) f01da2e
- document rollup config treeshaking (#98) 73daf23
- fix minor typo d98c6df
- Document some of the optimizations (#97) 71212dd
๐ Changes
- Added `build` npm task to example
- Fixed babel optimizations!
- Explicitly specify ts and tsx extensions in babel options (#96) 6512b46
- Merge pull request #93 from slorber/patch-1 517b8fa
- add "yarn build" for example 8033699
