Releases: web-infra-dev/rslib
v0.20.1
What's Changed
New Features 🎉
- feat(deps): update typescript to v6 and peer ranges by @Timeless0911 in #1553
Performance 🚀
- perf: upgrade rslog and bundle into to main chunk by @Timeless0911 in #1541
- perf(deps): replace picocolors with styleText from node:util by @Timeless0911 in #1543
- perf(deps): upgrade tinyglobby and use dynamic import by @Timeless0911 in #1544
- perf(dts): switch plugin-dts to multi-entry build by @Timeless0911 in #1547
Bug Fixes 🐞
- fix(dts): add extensions for non-rootDir relative imports by @Timeless0911 in #1536
- fix(core): support numbered preprocessor css rules by @Timeless0911 in #1538
- fix(deps): upgrade rsbuild-plugin-unplugin-vue by @Timeless0911 in #1540
- fix(core): update runtime chunk config for multiple entries by @Timeless0911 in #1551
- fix(core): use esm-aware node built-in externals by @Timeless0911 in #1552
Document 📖
- docs: add AI documentation by @Timeless0911 in #1528
- docs(docs): polish AI documentation content by @Timeless0911 in #1529
- docs: remove docs scope from create-pr skill by @Timeless0911 in #1530
- docs(website): generate description for all documentations by @Timeless0911 in #1537
Other Changes
- chore(deps): update @rslib/core to 0.20.0 by @Timeless0911 in #1527
- chore(CI): speed up playwright browser setup by @Timeless0911 in #1531
- chore(deps): update dorny/paths-filter action to v4 by @renovate[bot] in #1534
- chore(deps): update all non-major dependencies by @renovate[bot] in #1533
- chore(deps): remove jsdom from renovate ignore list by @Timeless0911 in #1539
- chore(deps): upgrade chokidar to v5 by @Timeless0911 in #1542
- chore(deps): update module federation (major) by @renovate[bot] in #1493
- chore(deps): update Rsbuild 2.0.0-beta.9 by @Timeless0911 in #1545
- chore(deps): update all non-major dependencies by @renovate[bot] in #1546
- chore: convert prebundle config files to ts by @Timeless0911 in #1548
- chore(deps): update all non-major dependencies by @renovate[bot] in #1549
- chore(deps): upgrade rspack canary by @Timeless0911 in #1550
- chore(deps): update Rsbuild 2.0.0-beta.10 by @Timeless0911 in #1554
- Release v0.20.1 by @Timeless0911 in #1555
Full Changelog: v0.20.0...v0.20.1
v0.20.0
Breaking changes 🚨
Drop Node.js 18 support
Rslib v0.20 requires Node.js 20.19+ or 22.12+, Node.js 18 is no longer supported.
Rsbuild / Rspack v2
Rslib v0.20 now depends on beta version of @rsbuild/core v2 and @rspack/core v2. If you use custom Rsbuild / Rspack configurations or plugins, you may need to make corresponding adjustments.
See the Rsbuild v2 upgrade guide for all breaking changes.
Deprecate experiments.advancedEsm
experiments.advancedEsm is now deprecated and effectively ignored. Advanced ESM behavior is the default in both bundle and bundleless mode.
What you need to do:
- Remove
experiments.advancedEsmfrom your config - Verify the output behaviour
Rename type StartServerResult
The exported type StartServerResult has been renamed to StartDevServerResult.
What's Changed
New Features 🎉
- feat!: upgrade Rsbuild to v2 and deprecate
experiments.advancedEsmby @Timeless0911 in #1513 - feat: updates the default contenthash length in filenames from 8 to 10 by @Timeless0911 in #1515
Bug Fixes 🐞
- fix: validate glob entry correctness in bundle mode by @9aoy in #1512
- fix(core): allow preserve jsx in bundleless mode to coexist with bundle mode by @Timeless0911 in #1523
Document 📖
- docs: add comprehensive CSS guide by @Timeless0911 in #1495
- docs: add tsc migration guide by @Timeless0911 in #1503
- docs: enhance tsup migration guide with detailed examples by @Timeless0911 in #1504
- docs: add agent skill guide to tsc and tsup migration docs by @Timeless0911 in #1505
- docs: polish create-pr skill by @Timeless0911 in #1518
- docs: update create-pr skill guidelines by @Timeless0911 in #1524
Other Changes
- test: cleanup create-rslib unnecessary tests and suppress logs by @Timeless0911 in #1490
- chore(deps): update all non-major dependencies by @renovate[bot] in #1488
- chore(deps): update all non-major dependencies by @renovate[bot] in #1494
- chore: use pnpm to run build scripts by @Timeless0911 in #1499
- chore(deps): update dependency @shikijs/transformers to v4 by @renovate[bot] in #1501
- chore(deps): update all non-major dependencies by @renovate[bot] in #1500
- chore: add Copilot review instuctions by @fi3ework in #1507
- chore: add create-pr skill by @Timeless0911 in #1506
- chore: add internal metadata to create-pr skill by @Timeless0911 in #1508
- refactor!: drop support for Node 18 by @Timeless0911 in #1509
- chore(deps): update dependency cac to v7 by @renovate[bot] in #1502
- test(create-rslib): split parseTemplateName into separate module by @Timeless0911 in #1514
- chore(deps): bump rspress to 2.0.4 and align migration docs by @Timeless0911 in #1516
- chore(deps): update actions/setup-node digest to 53b8394 by @renovate[bot] in #1520
- chore(deps): update all non-major dependencies by @renovate[bot] in #1521
- chore(deps): update dependency @shikijs/transformers to ^4.0.2 by @renovate[bot] in #1522
- chore(deps): upgrade latest Rslib/Rsbuild canary version by @Timeless0911 in #1517
- chore(deps): update @rsbuild/core to 2.0.0-beta.8 by @Timeless0911 in #1525
- Release v0.20.0 by @Timeless0911 in #1526
Full Changelog: v0.19.6...v0.20.0
v0.19.6
What's Changed
Document 📖
- docs: clarify
dts.buildrequirement by @Timeless0911 in #1482 - docs: update output format guide by @Timeless0911 in #1483
Other Changes
- chore(deps): update actions/checkout digest to de0fac2 by @renovate[bot] in #1477
- chore(deps): update @typescript/native-preview by @Timeless0911 in #1479
- chore: update @rslint/core to 0.2.1 and refactor some codes by @Timeless0911 in #1480
- chore(deps): update all non-major dependencies by @renovate[bot] in #1478
- refactor(create-rslib): remove vitest template by @Timeless0911 in #1481
- chore(deps): update all non-major dependencies by @renovate[bot] in #1484
- Release v0.19.6 by @Timeless0911 in #1486
Full Changelog: v0.19.5...v0.19.6
v0.19.5
What's Changed
Document 📖
- docs: add guide for using Rspress with Rslib by @SoonIter in #1471
- docs: add Rsdoctor guide by @Timeless0911 in #1472
- docs: fix Rspress plugin URLs to official-plugins path by @SoonIter in #1474
Other Changes
- chore(deps): update all non-major dependencies by @renovate[bot] in #1470
- chore(deps): upgrade Rspack to v1.7.5 by @Timeless0911 in #1473
- chore(deps): bump Rsbuild 1.7.3 by @Timeless0911 in #1475
- Release v0.19.5 by @Timeless0911 in #1476
Full Changelog: v0.19.4...v0.19.5
v0.19.4
What's Changed
New Features 🎉
Bug Fixes 🐞
- fix(cli): exit with non-zero code when it fails to start by @Timeless0911 in #1449
- fix(shims):
import.meta.urlnot being removed by tree-shaking by @sylingd in #1463 - fix(create-rslib): remove rspress-js template by @Timeless0911 in #1464
- fix(create-rslib): support dynamic package name in rspress template by @Timeless0911 in #1465
- fix(create-rslib): improve template argument parsing and defaults by @Timeless0911 in #1467
Document 📖
- docs: remove custom llms button by @Timeless0911 in #1456
- docs: update guide of creating an Rslib project by @Timeless0911 in #1468
Other Changes
- chore(deps): update dependency prettier-plugin-packagejson to v3 by @renovate[bot] in #1450
- chore(deps): update dependency lodash to v4.17.23 [security] by @renovate[bot] in #1451
- chore(deps): update all non-major dependencies by @renovate[bot] in #1454
- chore(deps): upgrade Rspack to v1.7.4 by @Timeless0911 in #1455
- test: refactor runCliSync to unify cli tests by @Timeless0911 in #1458
- chore(create-rslib): remove git track of auto-generated templates by @Timeless0911 in #1460
- refactor(create-rslib): use
extraToolsto generate templates by @Timeless0911 in #1462 - chore(deps): update all non-major dependencies by @renovate[bot] in #1466
- Release v0.19.4 by @Timeless0911 in #1469
New Contributors
Full Changelog: v0.19.3...v0.19.4
v0.19.3
What's Changed
Document 📖
- docs: add FAQ for declaration files directory structure by @Timeless0911 in #1446
Other Changes
- chore(deps): update actions/setup-node digest to 6044e13 by @renovate[bot] in #1444
- chore(deps): update all non-major dependencies by @renovate[bot] in #1445
- Release v0.19.3 by @Timeless0911 in #1447
Full Changelog: v0.19.2...v0.19.3
v0.19.2
What's Changed
New Features 🎉
- feat(core): improve build status logging in watch mode by @Timeless0911 in #1437
- feat: support import.meta.dirname / filename shims for CJS by @Timeless0911 in #1440
Bug Fixes 🐞
- fix(core): use default import from node:module to avoid naming conflict by @Timeless0911 in #1433
- fix(dts): unify logger in dts plugin by @Timeless0911 in #1438
Document 📖
- docs: update rstack org link by @chenjiahan in #1426
- docs(plugins): add rsbuild-plugin-arethetypeswrong to plugins list by @fi3ework in #1430
- docs: enable ssg-md to support rendering overview component by @Timeless0911 in #1432
Other Changes
- chore: bump @rslib/core by @fi3ework in #1425
- chore(deps): update dependency check-dependency-version-consistency to v6 by @renovate[bot] in #1428
- chore(deps): update all non-major dependencies by @renovate[bot] in #1427
- chore: remove pnpm dedupe check from CI and lint-staged by @Timeless0911 in #1429
- refactor(core): use named import from node:module for require shim by @Timeless0911 in #1431
- chore(deps): update dependency preact to v10.28.2 [security] by @renovate[bot] in #1436
- refactor(plugin-dts): simplify dtsPromises to single dtsPromise by @Timeless0911 in #1439
- chore(deps): update all non-major dependencies by @renovate[bot] in #1441
- Release v0.19.2 by @Timeless0911 in #1443
Full Changelog: v0.19.1...v0.19.2
v0.19.1
What's Changed
Document 📖
- docs: refine third-party dependencies guide by @Timeless0911 in #1420
- docs: add
Rstestguide by @9aoy in #1419 - docs: update links from rspack-contrib to rstackjs by @chenjiahan in #1423
Other Changes
- chore(deps): bump Rslib v0.19.0 by @Timeless0911 in #1417
- chore(deps): bump Rsbuild 1.7.0 by @fi3ework in #1422
Full Changelog: v0.19.0...v0.19.1
v0.19.0
Highlights 💡
New JavaScript API
This release introduces a new, comprehensive JavaScript API for Rslib.
Caution
This is a Breaking Change. The previously exposed informal API has been removed. You can switch to the new JavaScript API and refer to the docs below to re-integrate.
See the API docs for details:
Usage
- Install Rslib: install the
@rslib/corepackage:
npm add @rslib/core -D- Create an Rslib instance: call the createRslib method to create an Rslib instance:
import { createRslib } from '@rslib/core';
const rslib = await createRslib();- Call Rslib instance methods: use the rslib.build method which will build production outputs:
await rslib.build();Advanced ESM Output
In previous versions, Rslib integrated Rspack's EsmLibraryPlugin through an experimental configuration of experiments.advancedEsm, aiming to optimize the quality of ESM outputs. Now, we are pleased to announce that this plugin has been stabilized.
In this release, the EsmLibraryPlugin is enabled by default by setting experiments.advancedEsm to true in bundle mode. Developers can directly obtain ESM output that is high-quality, more friendly to static analysis, and supports code splitting without any additional configuration.
Better Rstest Integration
Rslib now supports seamless integration with Rstest.
By using the official @rstest/adapter-rslib, you can directly reuse your Rslib build configurations (such as resolve.alias and source.define) within Rstest. This enables zero-config testing for Rslib projects, ensuring your test environment perfectly mirrors your build environment while eliminating the overhead of maintaining duplicate configurations.
// rstest.config.ts
import { defineConfig } from '@rstest/core';
import { withRslibConfig } from '@rstest/adapter-rslib';
export default defineConfig({
extends: withRslibConfig({}),
// Additional Rstest-specific configurations
// ...
});More details: https://rstest.rs/guide/integration/rslib
What's Changed
New Features 🎉
- feat(create-rslib): use
happy-dominstead ofjsdomby @9aoy in #1412 - feat!: add JavaScript API and enhance CLI behaviour by @Timeless0911 in #1394
- feat(create-rslib): use
@rstest/adapter-rslibby @9aoy in #1415 - feat!: enable advanced esm by default by @Timeless0911 in #1413
Other Changes
- chore(deps): update all non-major dependencies by @renovate[bot] in #1411
- chore(deps): update all non-major dependencies by @renovate[bot] in #1414
- Release v0.19.0 by @Timeless0911 in #1416
Full Changelog: v0.18.6...v0.19.0
v0.18.6
What's Changed
New Features 🎉
- feat(CLI): add
rslib-nodeprocess title by @Timeless0911 in #1406
Bug Fixes 🐞
- fix: should throw error when custom config file not found by @9aoy in #1403
- fix(CLI): ensure consistent spacing before the greeting message by @Timeless0911 in #1407
- fix(CLI): simplify build error logs by @Timeless0911 in #1408
Other Changes
- chore(deps): update dependency storybook to v10.1.10 [security] by @renovate[bot] in #1400
- chore(deps): update all non-major dependencies by @renovate[bot] in #1402
- chore(deps): bump Rsbuild 1.7.0-beta.1 by @Timeless0911 in #1409
- Release v0.18.6 by @Timeless0911 in #1410
Full Changelog: v0.18.5...v0.18.6