v0.2.0
Rspack 0.2.0 is out!
Read the announcement blog post: Announcing Rspack 0.2.
Overview
Official vue-loader support π
And also
- realContentHash support
- DataURI support
- ESM output support
- Configurable SplitChunksPlugin support
- Webpack Compatibility Updates: style-loader, css-loader, node-loader, svelte-loader and ForkTsCheckerWebpackPlugin and more
- Framework Ecosystem Updates: NestJS, Storybook React (5 - 10 times faster)
- More hooks and Loader APIs
- and more...
What's Changed
Breaking Changes π
Performance Improvements β‘
- perf(core): improve cold startup performance by caching
depended_modules
function in code splitter by @Boshen in #2294 - perf(rspack_core): reduce memory allocation when cloning RuntimeSpec by @Boshen in #2844
- perf: avoid
clone
while matchingimport.meta.webpackHot
by @hyf0 in #2857 - perf: bailout if possible and ignore AstNode of type in
ReactRefreshUsageFinder
by @hyf0 in #2875 - perf: compose loaders on the native side by @h-a-n-a in #2894
- perf: π€ optimize regex by @IWANABETHATGUY in #3113
- perf: skip call chunkAsset hook when not in use by @jerrykingxyz in #3228
- perf: emit_assets only emit changed assets by @jerrykingxyz in #3305
Exciting New Features π
- feat: port
ImportMetaPlugin
of Webpack by @underfin in #2684 - feat(cli): enable strictCommand & strictOption check by @hardfist in #2723
- feat: passthrough panics for parallel-running futures by @h-a-n-a in #2737
- feat(html):
builtins.html
should inject<script src="xxxx.js" />
in<head />
by @suxin2017 in #2770 - feat: πΈ export info support by @IWANABETHATGUY in #2776
- feat: add chunkFormat & chunkLoading & enabledChunkLoadingTypes config by @underfin in #2792
- feat: impl new
loader-runner
for preparing to supportvue-loader
andpitching loader
by @h-a-n-a in #2789 - feat: support complex magical comment
import(/* webpackChunkName: "/dist/d/js_d" */ "./d")
by @suxin2017 in #2812 - feat: support
experiments.outputModule
by @underfin in #2803 - chore: π€ optimize code completion of config.target by @IWANABETHATGUY in #2826
- feat: support
npx rspack preview
by @faga295 in #2434 - feat: implement built-in
BannerPlugin
by @9aoy in #2819 - feat(hook): add
optimizeModules
hook by @nieyuyao in #2758 - feat: add ImportScriptsChunkLoadingPlugin by @underfin in #2839
- feat: support loader-runner and pitching by @h-a-n-a in #2808
- feat: support
Rule.enforce
by @h-a-n-a in #2862 - feat: chunk asset hook by @IWANABETHATGUY in #2603
- feat: support passing function to
externals
by @underfin in #2866 - feat: add moduleAssets for stats by @ahabhgk in #2864
- feat: support inline loader by @h-a-n-a in #2867
- feat: πΈ compiler. getCache by @IWANABETHATGUY in #2892
- feat: require.resolve and require.resolveWeak for string literal by @ahabhgk in #2888
- feat: external module render with node-commonjs & module by @underfin in #2906
- feat(@rspack/core): add typings about
LoaderDefinition
by @Asuka109 in #2908 - feat: enable compression and cache with
noEmitAssets: true
by @hyf0 in #2907 - feat: support experiments.css by @hardfist in #2930
- feat(cli): add --entry flags by @faga295 in #2902
- feat: add compatible compilation.modules by @IWANABETHATGUY in #2932
- feat: add comments in module code generation by @faga295 in #2893
- feat: asset resource side effects by @IWANABETHATGUY in #2849
- feat(new_split_chunks): support
splitChunks.minSize
by @hyf0 in #2954 - feat: support minifyoptions extract comments by @faga295 in #2882
- feat(create-rspack): add template react-ts by @wood3n in #2963
- feat(terser): expose terser options by @dgmachado in #2983
- feat(x.mjs): add
x clean
command by @Boshen in #2980 - feat(new_split_chunks): support
reuseExistingChunk
by @hyf0 in #3000 - feat(rspack): add ignoreWarnings option by @nagy-nabil in #2987
- feat(new_split_chunks): support
splitChunks.{cacheGroup}.minSize
by @hyf0 in #3015 - feat: support inline match resource by @h-a-n-a in #3017
- feat(new_split_chunks): support
splitChunks.name
by @hyf0 in #2955 - feat: simple normal module hook by @IWANABETHATGUY in #2446
- feat: allow to pass
false
tosplitChunks.name
andsplitChunks.{cacheGroup}.name
by @hyf0 in #3029 - feat(module factory): add before_resolve hook by @suxin2017 in #2940
- feat(rust): add output.sourceMapFilename core by @lippzhang in #3005
- feat: optimization.realContentHash by @ahabhgk in #2984
- feat(angular): adding initial support by @zackarychapple in #3009
- feat: optional-dependency by @suxin2017 in #3050
- feat(rust): support webpack_chunk_load module variable by @lippzhang in #3080
- feat: support
optimization.removeEmptyChunks
config by @chenjiahan in #3076 - feat(core): support custom dependency type internally by @hyf0 in #3068
- feat(chunkId): care about
Chunk#id_name_hints
and generate more stable chunk id by @hyf0 in #3043 - feat(minify-plugin): support minify-css for minify-plugin by @hardfist in #3093
- feat(new_split_chunks): support
splitChunks.{cacheGroup}.enforce
by @hyf0 in #3086 - feat(realContentHash): multi contenthash in filename by @ahabhgk in #3095
- feat: add compatible compilation.chunks by @dgmachado in #3010
- feat: add build meta exports type by @underfin in #3121
- feat: add tree shaking 'module' to eliminate module which has no export used and sideEffects free. by @IWANABETHATGUY in #3034
- feat(core): external supports array by @hardfist in #3141
- feat(plugin-node-polyfill): add process & buffer to node-polyfill by @hardfist in #3154
- feat(core): support webpack-manifest-plugin by @hardfist in #3163
- feat(library): support system.js by @suxin2017 in #3124
- feat(resolve): support custom exports fields by @bvanjoi in #3186
- feat: add output.hotUpdateMainFilename & output.hotUpdateChunkFilename by @underfin in #3188
- feat: data uri support by @ahabhgk in #3220
- feat(types): support string or object in copy.patterns array by @9aoy in #3218
- feat: add scheme, mimetype, and resourceFragment rule condition by @ahabhgk in #3238
- feat: normal module factory after resolve hooks by @IWANABETHATGUY in #3060
- feat: add support for
Rule.loader
andRule.options
by @h-a-n-a in #3246 - feat(module_optional): support require.resolve and require.resolveWeak by @suxin2017 in #3237
- feat: add afterCompile hook by @edusperoni in #3235
- feat: add shutdown hook by @edusperoni in #3234
- feat: support resolve.extensionAlias by @bvanjoi in #3249
- feat(cli): Use proxy config in the preview command by @salamaashoush in #3287
- feat: string replace dependency by @underfin in #3219
- feat: hashFunction, hashDigest, hashDigestLength, and hashSalt and refactor lots of code by @ahabhgk in #3255
- feat(ts): resolve priority to be same with webpack by @lippzhang in #3242
- feat: add hot module replacement string replace dependency by @underfin in #3301
- feat: enable the new implementation of
SplitChunksPlugin
by default by @hyf0 in #3295 - feat: enable realContentHash in production by default by @ahabhgk in #3338
- feat: add cache idle hooks by @edusperoni in #3236
Bug Fixes π
- fix(html): html inject public path incorrect by @jerrykingxyz in #2707
- fix: extend chunkGroup name from EsmDynamicImportDependency by @ahabhgk in #2712
- fix(progress): should not display empty progress bar by @chenjiahan in #2725
- fix: panic hook failed to restore after being suppressed by @h-a-n-a in #2734
- fix: template literal dynamic import by @faga295 in #2732
- fix(react-refresh): lazily access
module.exports
to prevent unexpected/potential TDZ error by @hyf0 in #2714 - fix(cli): fix default NODE_ENV of command by @hardfist in #2724
- fix: π fix crash in multiCompiler by @JSerFeng in #2744
- fix(css): should generate css assets even if the imported css file is empty by @suxin2017 in #2759
- fix(builtins.provide): should only replace exactly matched expression by @suxin2017 in #2721
- fix: redirect
name_for_condition
in BoxModule by @hyf0 in #2778 - fix: preset env use unresolved_mark by @underfin in #2807
- fix: π fix ci a is undefined by @IWANABETHATGUY in #2810
- fix: error snap should be ordered by @IWANABETHATGUY in #2811
- fix: support magic comment
import( /* webpackChunkName: "/user/[id]/page" */ './foo')
containing[id]
by @GiveMe-A-Name in #2835 - fix: use webworker instead of web-worker in AvailableTarget type by @9aoy in #2834
- chore: bump resolver and fix resolve.alias with resource query by @Boshen in #2817
- fix: sourcemap lost when enable builtins.banner by @ahabhgk in #2858
- fix: undefined reasons with stats.toJson by @ahabhgk in #2859
- fix(resolve): return query and fragment when alias target had by @bvanjoi in #2869
- fix: remove
.d.ts
from the defaultresolve.extensions
by @lippzhang in #2861 - fix: react refresh runtime inject for nest function call by @underfin in #2874
- fix: optimize tree shaking swc/helpers by @IWANABETHATGUY in #2871
- fix(resolve): delay the directory check in exportsFieldPlugin by @bvanjoi in #2883
- fix: fix loader arguments by @h-a-n-a in #2898
- fix: HMR scanner should only visit dependencies related to HMR by @h-a-n-a in #2911
- fix: benchmark CI failed. by @IWANABETHATGUY in #2928
- fix: add missing
newSplitChunks
in schema.js by @hyf0 in #2934 - fix: require.resolve(Weak) should eval to true in if stmt test expr by @ahabhgk in #2935
- fix: should not reset
is_founded
inReactRefreshUsage
by @underfin in #2939 - fix: cannot reading
noEmitAssets
by @faga295 in #2942 - fix: hash chunkLoadingGlobal by @underfin in #2946
- fix: π use unknown module type in SWC by @JSerFeng in #2406
- fix(resolve): relative path resolve bug by @jerrykingxyz in #2952
- fix: π unexpected export warning by @IWANABETHATGUY in #2959
- fix: Fix type checking in config examples by @danielkoller in #2965
- fix(react-hmr): inject the runtime global function by @hyf0 in #2977
- fix: add entry startup to fix async script chunk loading by @underfin in #2966
- fix: entry startup for target node by @underfin in #3006
- fix: circular dependencies rebuild panic by @jerrykingxyz in #3001
- fix(core): fix require(
./xxx/xx.js
) failed by @hardfist in #3014 - fix(core): compatible with stats.version by @hardfist in #3016
- fix(new_split_chunks): should not care about
reuseExistingChunk
if name is specified forCacheGroup
by @hyf0 in #3045 - fix: π cross compile by @IWANABETHATGUY in #3059
- fix: css url generate with auto public path by @ahabhgk in #3061
- fix: already split module should connect chunk group at multiply entry by @underfin in #3057
- fix(resolve): bump nodejs-resolver to fix baseUrl bug in tsconfig by @bvanjoi in #3072
- fix(rspack_plugin_javascript): remove empty whitespace from runtime by @Boshen in #3083
- fix: add correct chunk group runtime for multiply entry single runtime by @underfin in #3094
- fix: rebuild loses error messages by @jerrykingxyz in #3101
- fix(emotion): should use source code for computing hash by @hyf0 in #3100
- fix: replace wrong with unicode by @ahabhgk in #3102
- fix: fix esbuild iife for minify plugin by @hardfist in #3107
- fix(context module): should escape context module regex by @suxin2017 in #3037
- fix: π tree shaking nuxt error by @IWANABETHATGUY in #3125
- fix(create-rspack): fix compatible problem with node@14 by @hardfist in #3159
- fix: call devServer.invalidate() panic by @jerrykingxyz in #3105
- fix(license-plugin): add support for license-plugin in case of perChunkOutput as false by @dgmachado in #3172
- fix: π don't crash when export * of external module by @IWANABETHATGUY in #3167
- fix(magic_comment): support '()' by @suxin2017 in #3179
- fix: add experiments.css schema by @9aoy in #3183
- fix(plugin-node-polyfill): remove console polyfill by @KyrieLii in #3191
- fix: wasm loading runtime on node-18 by @ahabhgk in #3197
- fix: render exports for esm output at hmr by @underfin in #3194
- fix: export-all-from-side-effects-free-commonjs by @IWANABETHATGUY in #3181
- fix: fix provide can't be override by user by @zhangliu in #3201
- fix: provided dependency generated code not stable by @ahabhgk in #3204
- fix: ci clippy by @IWANABETHATGUY in #3208
- fix: context module elimated by @IWANABETHATGUY in #3151
- fix: π amd external-array by @IWANABETHATGUY in #3226
- fix(dev-client): remove some unused dependencies by @chenjiahan in #3244
- fix:
source
could be unavailable if asset was deleted by @h-a-n-a in #3250 - fix(core): upgrade regress to 0.6.0 to fix regress compile regex error by @hardfist in #3251
- fix: namespace access on var decl rhs by @IWANABETHATGUY in #3176
- fix(tree_shaking): obj['test'] reference by @suxin2017 in #3214
- fix: external amd array case by @IWANABETHATGUY in #3268
- fix: should not resolve to a rule if an existing rule does not have its data by @h-a-n-a in #3282
- fix: data uri base64 encoded content with whitespace by @ahabhgk in #3289
- fix(source_map): windows support by @suxin2017 in #3239
- fix: add schema for
Rule.options
andRule.loader
by @h-a-n-a in #3296 - fix(angular_example): updating the example to include now working options by @zackarychapple in #3302
- fix: root asset missing when using [path] in assetModuleFilename by @ahabhgk in #3308
- fix(webpack-test): remove deprecated array
["jam", "main"]
from mainFields by @Boshen in #3334 - fix: builtins.provide function params transform bug by @jerrykingxyz in #3347
- fix: migrate more string replace dependency for test by @underfin in #3341
- fix(resolve): search parent when resolve.exportsFields not match by @jerrykingxyz in #3351
- fix(dev-server): make sure resolve webpack/hot/dev-server from webpac⦠by @underfin in #3357
- fix: before resolve can't modify data by @IWANABETHATGUY in #3352
- fix: fix wrong context in external function by @hardfist in #3370
- fix: fix wrong context in external function by @hardfist in #3372
Other Changes
- chore: upgrade pnpm version by @h-a-n-a in #2084
- fix: commonjs loading with extra output dir by @underfin in #2092
- fix: fix fast refresh on windows by @h-a-n-a in #2095
- fix: examples/react resolve failed by @jerrykingxyz in #2108
- chore: add rust-analyzer by @lencx in #2102
- chore: migrate CI to public runner by @h-a-n-a in #2100
- chore: run addon tests conditionally by @h-a-n-a in #2115
- chore: update docs for some format error by @monster1935 in #2112
- chore: fix readme by @mewcoder in #2104
- chore(ci): fix install protoc limit by @ahabhgk in #2117
- docs: update rolldown team link by @ycjcl868 in #2098
- feat: support guided panic info with backtrace by @h-a-n-a in #2097
- chore: remove all self-hoseted ci by @bvanjoi in #2128
- chore: fix release ci for canary release by @h-a-n-a in #2129
- chore: add dummy workflow for status check workaround by @IWANABETHATGUY in #2132
- chore: try to fix dummy status checks by @h-a-n-a in #2133
- fix: library umd code excute by @underfin in #2094
- chore: disable dummy workflow and auto-merge by @h-a-n-a in #2136
- feat: stats chunkRelations and chunkModules by @ahabhgk in #2096
- chore: π€ fix benchmark history by @IWANABETHATGUY in #2139
- chore: π€ remove unnecessary ts-expect-error by @IWANABETHATGUY in #2138
- feat: config validate strategy by @ahabhgk in #2137
- feat: loader api add dependency by @MBearo in #2121
- chore: remove unused depenecies by @HerringtonDarkholme in #2131
- chore: dedupe packages to reduce the size of node_modules by @XGHeaven in #2143
- fix: correct license by @JSerFeng in #2159
- docs: fix typo by @mewcoder in #2127
- docs: fix punctuation by @liruifengv in #2101
- chore: update license by @h-a-n-a in #2161
- chore: fix some ts types by @zscumt123 in #2151
- Update bench-history.yaml by @IWANABETHATGUY in #2160
- Update bench-history.yaml by @IWANABETHATGUY in #2162
- chore: update license by @h-a-n-a in #2165
- Update README.zh-CN.md about fixing format by @fwqaaq in #2147
- docs: improve wording to better reflect initial idea by @ZuBB in #2173
- refactor: use
unwrap_or_else
by @tuchg in #2167 - fix(resolve): path with relative from tsconfig/baseUrl should work by @bvanjoi in #2174
- chore: π€ remove benchmark history timeout limit by @IWANABETHATGUY in #2176
- chore(scripts): remove unused export module by @ycjcl868 in #2182
- ci: fix clippy warnings not being raised as errors by @Boshen in #2198
- chore: fix typos by @Boshen in #2199
- chore: π€ fix benchmark protoc not found by @IWANABETHATGUY in #2200
- ci: add cache to rust build steps by @Boshen in #2203
- chore: π€ remove benchmark timeout by @IWANABETHATGUY in #2207
- docs: fix README.md logo by @zhoushaw in #2210
- fix: incremental rebuild not work by @jerrykingxyz in #2214
- chore: add ci workflow for pr by @h-a-n-a in #2215
- chore: add discord channel to README by @Boshen in #2197
- pref(source): use use once cell for source map line chunk during substring by @bvanjoi in #2187
- refactor: use better typing to remove any by @HerringtonDarkholme in #2211
- ci: team-label action by @IWANABETHATGUY in #2224
- feat: array type for externals by @ahabhgk in #2217
- chore: use custom entry in devServer test by @bvanjoi in #2221
- fix(plugin-html): fix template with process by @h-a-n-a in #2226
- feat: support configuration file written in TypeScript by @HerringtonDarkholme in #2227
- feat(cli): support config return promise by @hardfist in #2230
- fix(cli): make ts-node as an optional peer dependency by @fi3ework in #2231
- refactor: ast -> AST in readme by @bvanjoi in #2232
- chore: prettierignore complement by @ycjcl868 in #2184
- fix: Avoid reporting warning the export when src module format is none esm by @IWANABETHATGUY in #2172
- refactor: runtime module by @underfin in #2216
- fix: try rs test run in single thread by @IWANABETHATGUY in #2235
- fix(testing): resolve context for fixtures controlled by
test.config.js
by @tuchg in #2234 - fix: normalize identifier for externalsType umd by @underfin in #2233
- chore: π€ remove concurrency cancel in main by @IWANABETHATGUY in #2242
- feat: externalsPresets.node by @ahabhgk in #2239
- fix: postcss modules warning when using postcss-loader by @ahabhgk in #2243
- ci: reduce CI workload by @IWANABETHATGUY in #2248
- fix: runtime module cacheable by @underfin in #2250
- feat: amd library by @underfin in #2240
- chore: bump swc by @Boshen in #2204
- chore: π€ multi platform test in pull request by @IWANABETHATGUY in #2253
- fix(dev-middleware): compatibility with native node handler by @danielroe in #2186
- fix: remove extern crate syntax, use syntax of the 2018 edition by @zscumt123 in #2134
- chore: π€ do not cancel task in main branch by @IWANABETHATGUY in #2246
- refactor(rspack_core): refactor ModuleGraph by @Boshen in #2265
- revert: downgrade swc version by @jerrykingxyz in #2276
- chore: update vue example by @OrangeXC in #2271
- chore: fix lockfile problem by @hardfist in #2286
- fix: fix webpack-sources interoperation by @h-a-n-a in #2282
- refactor module graph lookups by @Boshen in #2279
- feat: π€ finish defineConfig by @IWANABETHATGUY in #2267
- fix: contenthash should care about ChunkGraphModule#id by @hyf0 in #2292
- feat: function type RuleSetCondition by @ahabhgk in #2291
- feat(create): support package manager detect in create-rspack command by @hhshii in #2146
- fix(ci): clean up check-rs, attempt to fix ci cache taking 1G by @Boshen in #2300
- feat: release action support only create release tag by @caohuilin in #2305
- ci: combine lint, format and test to save ci time and cache by @Boshen in #2307
- fix: mjs file node mode interop by @underfin in #2296
- chore: make solid example refresh happen by @hardfist in #2310
- Small fix to improve the readme file by @zakuru in #2317
- fix: fix identifier of missing module by @h-a-n-a in #2314
- fix(html): builtins.html minify not work by @jerrykingxyz in #2306
- fix: create-rspack default command conflict with help command by @PengBoUESTC in #2244
- fix(cli): rspack build --watch not work (#2280) by @SoonIter in #2316
- chore: fix typo in adapter-rule-use.ts by @eltociear in #2315
- ci: cache pnpm in check-rs by @Boshen in #2308
- Revert "ci: cache pnpm in check-rs (#2308)" by @Boshen in #2326
- fix(cli): set stats default to errors-warning to avoid server info flushhed by module stats by @hardfist in #2325
- feat: align optimizeChunkModules by @IWANABETHATGUY in #2323
- fix: css hmr memory middleware by @underfin in #2329
- feat: added the handling of duplicate project names by @Nirvana-Jie in #2336
- feat: stats.outputPath by @ahabhgk in #2303
- feat(runtime): support
__filename
polyfill by @bvanjoi in #2342 - ci: add write permission to team-label by @Boshen in #2357
- fix: Tailwind CSS HMR not work by @jerrykingxyz in #2330
- feat: expose description data to resolve_data by @bvanjoi in #2348
- feat(builtin.copy): add simple ignore option by @JSerFeng in #2126
- chore: add rspack feishu group by @hardfist in #2369
- chore: upgrade webpack-dev-server & webpack-dev-middleware by @hardfist in #2349
- feat: parse with comments by @IWANABETHATGUY in #2367
- fix(core): fix regex external not working by @hardfist in #2383
- fix: π fix parsing error in html template path by @JSerFeng in #2380
- test(rspack_util): add test cases by @ycjcl868 in #2346
- fix: progress plugin percent symbol by @IWANABETHATGUY in #2387
- fix(dev-server): delete isWebTarget by @bvanjoi in #2390
- fix: release action node architecture config by @caohuilin in #2395
- feat: π€ additionalAssets by @IWANABETHATGUY in #2396
- fix: react refresh runtime injection by @underfin in #2328
- feat: module.hot.accept/decline support arrary dependencies by @underfin in #2378
- feat: NormalModuleFactory and resolveForScheme hook by @IWANABETHATGUY in #2356
- chore: π€ recover benchmark history by @IWANABETHATGUY in #2402
- fix: set context of basic example to __dirname by @nieyuyao in #2345
- fix: remove several ts-expect-error by @HerringtonDarkholme in #2409
- fix: returning exports from runtime for libraries by @underfin in #2415
- chore: node binding cross env by @PengBoUESTC in #2327
- feat(rspack-cli): support mjs config by @hardfist in #2168
- chore: update rspack-sources by @ahabhgk in #2419
- refactor: css dependencies by @ahabhgk in #2404
- fix: export without specifier by @underfin in #2421
- feat: stats for timings and builtAt by @ahabhgk in #2425
- Release v0.1.2 by @h-a-n-a in #2429
- chore: optimize the initialization of instance by @KarthusLorin in #2432
- feat: watch-suspend by @bvanjoi in #2430
- feat: definePlugin helper by @so1ve in #2302
- chore: fix some ts types by @zscumt123 in #2142
- feat: Support
new URL("./foo", import.meta.url)
by @magic-akari in #2340 - refactor(rust): remove unnecessary usage of crossbeam by @Boshen in #2439
- feat: inline external type syntax by @ahabhgk in #2437
- chore(rust): remove cargo warnings around napi by @Boshen in #2436
- fix(cli): mode default config by process.env.NODE_ENV by @SoonIter in #2343
- docs: add some tips about corepack enable by @KarthusLorin in #2447
- Bump Rust to Rust v1.68.0 (nightly-2023-03-09) by @Boshen in #2435
- fix: amd should return exports with iife by @underfin in #2453
- feat: add finishModules hook by @tuchg in #2463
- fix: skip some tests in watch suspend by @bvanjoi in #2465
- feat(plugin-wasm): add async-wasm support by @tuchg in #2229
- fix(relay): π apply unresolved_mark to require by @JSerFeng in #2454
- fix: use babel mode for mjs by @underfin in #2455
- ci: check team-label only on pr and issue open by @Boshen in #2471
- ci: use pnpm/action-setup in check-changeset by @Boshen in #2474
- chore(rust): remove unused dependencies via cargo-udeps by @Boshen in #2476
- fix: should not remove empty initial chunk by @hyf0 in #2458
- ci: cache pnpm dependencies in check-rs workflow by @Boshen in #2470
- ci: fix check-rs by @Boshen in #2481
- refactor: change runtime globals from HashSet to bitflags by @HerringtonDarkholme in #2461
- feat: resolve.byDependency by @ahabhgk in #2459
- fix: remove unnecessary @ts-ignore by @HerringtonDarkholme in #2491
- feat(runtime): support set webpack_public_path runtime by @jerrykingxyz in #2487
- fix(core): change the callback type of compiler.watch to
Callback
by @bvanjoi in #2494 - test(e2e): basic by @bvanjoi in #2469
- fix: cjs transfrom preset env by @underfin in #2503
- chore: fix version bump by @h-a-n-a in #2508
- [Bug Fix]: ERR_UNSUPPORTED_ESM_URL_SCHEME since version 0.1.2 on Windows OS by @zakuru in #2450
- fix: duplicate webpack_require.a in async module by @ahabhgk in #2505
- ci: issue-labeler add triage by @IWANABETHATGUY in #2488
- fix: context module request by @underfin in #2509
- CI: use regex to trigger issue labeler by @IWANABETHATGUY in #2518
- chore: fix canary release by @h-a-n-a in #2514
- chore: expose error data , part of angular by @IWANABETHATGUY in #2499
- Revert "fix(cli): mode default config by process.env.NODE_ENV (#2343)" by @hardfist in #2528
- fix: fix hmr not working by @hardfist in #2543
- chore: pr test workflow by @h-a-n-a in #2538
- ci: π‘ fix broken CI by @IWANABETHATGUY in #2536
- fix(rspack_testing): document on how to run the Rust core by @Boshen in #2547
- fix: bump version by @IWANABETHATGUY in #2500
- feat: built-in support for ProvidePlugin by @dhruvkelawala in #2492
- fix: library amd returning by @underfin in #2532
- chore: expose
util
for compiler.webpack by @IWANABETHATGUY in #2548 - feat: new url dependency in
target: 'node'
by @ahabhgk in #2535 - chore: remove unnecessary std::mem::take by @HerringtonDarkholme in #2549
- chore: π€ migrate test from webpack by @IWANABETHATGUY in #2550
- chore: git attributes ignore test related files by @IWANABETHATGUY in #2554
- deps(node_binding): dashmap v5.4.0 by @Boshen in #2555
- feat: wasm loading types by @ahabhgk in #2533
- chore: unify line endings for all files for any new clone by @ShuiRuTian in #2541
- fix: add more hash logic by @underfin in #2560
- fix: should generate correct output when running
rspack build --json stats.json
by @hardfist in #2557 - test: add e2e test in linux by @bvanjoi in #2561
- ci: cache pnpm globally by @Boshen in #2556
- chore: enable merge_queue by @hardfist in #2564
- chore: π€ webpack test case by @IWANABETHATGUY in #2544
- feat: module.rule[].dependency by @ahabhgk in #2562
- chore: add devcontainer files by @ShuiRuTian in #2542
- fix: require.cache undefined by @faga295 in #2468
- fix: π windows absolute should not be considered as scheme by @JSerFeng in #2571
- chore: add CODEOWNERS by @Boshen in #2480
- feat(rspack-cli): emit warning if the using nodejs version is not recommended by @dhruvkelawala in #2575
- feat(rspack_plugin_dev_friendly_split_chunks): reduce
MAX_MODULES_PER_CHUNK
and addMAX_SIZE_PER_CHUNK
condition by @hyf0 in #2578 - ci: encore PR titles to follow the conventional-commit rules by @hyf0 in #2584
- fix(cli): fix semver missing by @hardfist in #2586
- chore: fix typo in CONTRIBUTING.md by @hyf0 in #2588
- chore: remove copy-plugin from cra example by @hardfist in #2596
- fix: swc css minifier global not set by @IWANABETHATGUY in #2600
- fix(dev-client): use webpack-dev-server/client directly by @bvanjoi in #2576
- feat(html): support templateContent in
builtins.html
by @jerrykingxyz in #2589 - fix(hmr): improve detecting of ReactRefreshBoundary and Return value of
React.createContext
is not considered as React component by @underfin in #2587 - ci: release pre check by @IWANABETHATGUY in #2606
- fix: draw progress bar to stdout instead of stderr, close #1434 by @jkzing in #2599
- fix: bump nodejs-resolver to fix path issue with chinese characaters by @bvanjoi in #2506
- chore: add tailwind example by @hardfist in #2608
- chore: Update all package.json#repository fields to include the monorepo-relative directory by @vjpr in #2617
- fix(css): remove trailing space at classname by @nieyuyao in #2626
- fix: initial watching should stale until invalidate happens by @JSerFeng in #2625
- chore: Upgrade typescript by @IWANABETHATGUY in #2615
- perf: remove block_in_place for function type RuleSetCondition by @ahabhgk in #2574
- chore: add library example by @hardfist in #2629
- ci: add refactor type on lint-pr by @ahabhgk in #2630
- chore(css): remove unnecessary format by @lsdsjy in #2633
- test: webpack test credit by @IWANABETHATGUY in #2627
- feat: add support for output.crossOriginLoading config by @chenjiahan in #2632
- fix: fix typing of raw cross origin loading by @h-a-n-a in #2635
- fix(hmr): should inject react refresh runtime code correctly by @hyf0 in #2641
- chore: add a issue template for creating tracking issue by @hyf0 in #2644
- feat: support node false by @underfin in #2637
- chore: fix the format of 3-tracking-issue.en-US by @hyf0 in #2647
- fix: π Module Export Entry does not respect ordering by @IWANABETHATGUY in #2634
- fix: detect export destructring in tree-shaking by @HerringtonDarkholme in #2565
- fix: fix compile time is NaN in watch by @HerringtonDarkholme in #2656
- chore: prepare for rspack-ecosystem-ci by @ahabhgk in #2648
- chore: fix ecosystem-ci trigger comment by @ahabhgk in #2658
- feat: split chunks more delicately for
devFriendlySplitChunks: true
by @hyf0 in #2651 - chore: add nestjs example by @hardfist in #2649
- fix: π release ci syntax by @IWANABETHATGUY in #2661
- chore(ci): comment out release-pre-check by @hyf0 in #2662
- refactor: π€ remove unnecessary ignore clippy by @IWANABETHATGUY in #2660
- feat: enable resolve.fullySpecified for defaultRules by @ahabhgk in #2665
- feat: support module.rule[].descriptionData by @ahabhgk in #2663
- fix: nested byDependency not merge by @ahabhgk in #2666
- fix: builtins.html does replace [hash] and [name] in builtins.html.filename by @suxin2017 in #2673
- feat: stats module reason type and userRequest by @faga295 in #2671
- fix: use codegen hash to calculate chunk hashes & fix runtime chunk hash by @underfin in #2677
- chore: add "pending triage" to new issue by default by @hyf0 in #2681
- ci: remove issue-labeler by @hyf0 in #2682
- chore: several style change for more concise code by @HerringtonDarkholme in #2655
- feat: Support output.clean by @suxin2017 in #2659
- feat: support output.chunkLoadingGlobal by @9aoy in #2679
- feat(cli): support mjs&cjs as default config file by @hardfist in #2685
- feat: support magical comment
import(/* webpackChunkName: "d" */ "./d")
by @hyf0 in #2686 - test: π webpack stats test by @IWANABETHATGUY in #2636
- ci: π‘ fix spell check failed by @IWANABETHATGUY in #2689
- fix: changeset remove not exist package by @jerrykingxyz in #2690
- chore: split test by @hardfist in #2703
- chore: remove the prefix of title in GitHub issue template by @hyf0 in #2698
- test: long test.js by @IWANABETHATGUY in #2708
- chore: fix GitHub issue template by @hyf0 in #2718
- chore: check bump in ci by @hardfist in #2716
- chore: add datetime to nightly version by @hardfist in #2720
- chore: add graph of contributors by @hyf0 in #2726
- test: finish all webpack test migration by @IWANABETHATGUY in #2709
- chore: use copilot in PR template by default by @hyf0 in #2729
- chore: Improve PR template by @hyf0 in #2730
- chore: add codeowner for crate error by @h-a-n-a in #2736
- ci(release): Refactor release script with reusable workflow by @Boshen in #2597
- chore: remove continue-on-error from reusable-build by @Boshen in #2743
- ci: remove invalid "description" field from release-canary by @Boshen in #2746
- chore: bump swc 0.74.6 by @underfin in #2657
- chore: introduce zx, corepack and setup script by @hyf0 in #2754
- chore: fix typo by @hyf0 in #2755
- chore: remove
zx
in setup script by @hyf0 in #2756 - style: fix clippy warning by @siyou in #2764
- chore: Add release.yml by @hyf0 in #2765
- chore: ignore the PRs created by github-actions in release notes by @hyf0 in #2766
- chore: improve structrue of PULL_REQUEST_TEMPLATE.md by @hyf0 in #2769
- chore: π€ bump napi by @IWANABETHATGUY in #2717
- chore: Revert "chore: π€ bump napi (#2717)" by @IWANABETHATGUY in #2783
- chore: update and lock pnpm to 7.32.0 by @zakuru in #2780
- chore: fine grained lint stage by @IWANABETHATGUY in #2794
- ci: set fail-fast: false for matrix builds by @Boshen in #2796
- chore: π€ revert examples basic by @IWANABETHATGUY in #2799
- ci: only cache Rust builds on the main branch by @Boshen in #2798
- refactor: SplitChunksPlugin by @hyf0 in #2782
- chore: fix lock by @h-a-n-a in #2805
- test: webpack compatibility metric by @IWANABETHATGUY in #2745
- ci: fix fail-fast by @Boshen in #2809
- chore: π€ check node binding lock file by @IWANABETHATGUY in #2814
- ci: share rust target directory in check-rs by @Boshen in #2818
- chore: remove ./x and Makefile and replace them with npm scripts by @hyf0 in #2825
- chore: bump sugar_path to 0.0.12 by @Boshen in #2830
- ci: πCI ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL by @IWANABETHATGUY in #2833
- chore: scripts should be ESM by default by @hyf0 in #2827
- ci: install pnpm in benchmark CI by @hyf0 in #2836
- test: webpack examples by @IWANABETHATGUY in #2793
- chore: π€ add common-check.yaml and fix ci by @IWANABETHATGUY in #2847
- chore: use
zx
to replace xtask by @hyf0 in #2840 - chore: π€ update benchmark link by @IWANABETHATGUY in #2848
- refactor:
crates/rspack_plugin_javascript/src/visitors/dependency/util.rs
by @hyf0 in #2865 - refactor(runtime): unwrap the function in ir by @bvanjoi in #2860
- refactor: align
starts_with
with the same semantics by @hyf0 in #2872 - refactor: Make
check_changeset.cjs
ESM and use ZX by @hyf0 in #2878 - chore: should exit if the exitCode is not zero at
check_changeset.js
by @hyf0 in #2880 - chore: fix peerDep of rspack-plugin-html by @hardfist in #2876
- chore: fix
make-threejs10x.js
script by @hyf0 in #2887 - chore: prettier example code by @hardfist in #2889
- chore: π€ bump napi retry by @IWANABETHATGUY in #2784
- chore: add more examples by @hardfist in #2896
- chore: add hmr for loader example by @h-a-n-a in #2925
- chore(rust): bump rustc to v1.69.0 (nightly-2023-04-20) by @Boshen in #2903
- chore: add eslint support by @hardfist in #2904
- refactor(new_split_chunks): remove unused code and add more comments by @hyf0 in #2947
- chore: setup ./x script using zx by @Boshen in #2933
- refactor: clean up dependencies around swc for improving compile time by @Boshen in #2962
- refactor(plugin): asyncify
optimize_chunks
hook by @hyf0 in #2958 - chore(rust): bump dependencies by @Boshen in #2968
- ci: π‘ trigger test when examples change by @IWANABETHATGUY in #2971
- refactor: extract comments by @IWANABETHATGUY in #2970
- refactor(split_chunks_new): asyncify
prepare_module_group_map
by @hyf0 in #2975 - chore: π€ disable css erorr by @IWANABETHATGUY in #2964
- docs: pnpm install command fix based on engine by @thedeveloperpotato in #2992
- refactor(core): use directory for chunk_graph module by @hyf0 in #2998
- chore: add node shims example by @hardfist in #2997
- test(split_chunks): add test of extract-css-to-single-chunk by @hyf0 in #2996
- chore: remove clap by @IWANABETHATGUY in #2967
- chore: add add loader_name to loader_sync_call in trace by @hardfist in #2999
- chore: fine grained tracing by @IWANABETHATGUY in #3002
- chore: make release profile the same for Cargo.toml and node_binding/Cargo.toml by @Boshen in #3004
- ci: remove manual symbol stripping from build steps by @Boshen in #3007
- chore: π€ bump napi cli by @IWANABETHATGUY in #3008
- chore: π€ recover check on save by @IWANABETHATGUY in #3013
- chore(rust): bump sass-embedded and remove protobuf requirement by @Boshen in #3021
- chore: link to rspack-dev-guide and make content more general in CONTRIBUTING.md by @Boshen in #3020
- refactor: external module for http request by @ahabhgk in #3023
- refactor: remove dependency parent module identifier by @underfin in #3024
- refactor(chunk_graph): split methods of
ChunkGraph
into different files by @hyf0 in #3031 - chore: π€ add alias cargo test no fail fast by @IWANABETHATGUY in #3032
- test(split_chunks): Migrate
test/configCases/split-chunks-common
of Webpack by @hyf0 in #3018 - refactor(rust): add more restriction clippy rules by @Boshen in #2974
- chore: π€ refactor before resolve by @IWANABETHATGUY in #3036
- refactor(new_split_chunks): use
RspackRegex
by @hyf0 in #3040 - ci: make pr and main use the same CI workflow by @Boshen in #3003
- refactor: π‘ angular support by @IWANABETHATGUY in #3055
- chore: take bump check temporarily by @hardfist in #3064
- chore: add stale bot, which only adds the "stale" label and never closes issues or PRs by @Boshen in #3065
- refactor(hmr): change visit_node_children from macro to fn by @bvanjoi in #3075
- chore: add svg-react-loader & node-loader example by @hardfist in #3030
- chore: single workspace by @Boshen in #3035
- chore(rspack): add github-actions-reporter to jest by @Boshen in #3081
- chore: add test commands to x.mjs by @Boshen in #3082
- chore: disable perfsee upload in ci environment by @hardfist in #3099
- chore(rust): clean up dependencies via
cargo-machete
by @Boshen in #3106 - chore: remove unused workspace dev dependencies by @Boshen in #3098
- chore: add rust rebuild test function feature by @suxin2017 in #3091
- chore: fix toml indentation by @Boshen in #3114
- refactor: Remove impl
Module
forBox<dyn Module>
in codebase by @sladyn98 in #2831 - chore: placeholder options for stats nestedModules by @ahabhgk in #3115
- ci: run x86_64-unknown-linux-gnu tests without docker by @Boshen in #3117
- ci: run e2e tests in ubuntu-latest by @Boshen in #3122
- chore(examples): remove unused eslint-loader from examples/eslint by @Boshen in #3123
- chore: enable emitCss for svelte by @hardfist in #3136
- chore(examples/plugin-compat): disable verbose log && add inline css by @hardfist in #3138
- chore: clean up Cargo.toml for node_binding and rspack_binding_options by @Boshen in #3139
- chore: upgrade ts-jest to 29.1.0 by @hardfist in #3146
- chore: support debug rust in jest by @hardfist in #3149
- chore(rspack-cli): run jest with --runInBand by @Boshen in #3140
- chore: Upgraded
webpack
to5.76.0
by @GarrisonD in #3156 - refactor(rust): remove dead code by @Boshen in #3160
- chore: fix version manually by @h-a-n-a in #3165
- chore: π€ fix cargo test crash by @IWANABETHATGUY in #3178
- refactor: compilation getPath by @ahabhgk in #3143
- chore: console error info when ./x failed by @hardfist in #3175
- chore: fix arco-pro example crashing in debug mode by @Boshen in #3192
- chore: fix arco-pro crash again by @hardfist in #3195
- chore: fix fix-issue-3873 crash by @hardfist in #3196
- chore: fix node16 tests by @hardfist in #3200
- ci: add test Node.js v18 by @Boshen in #3168
- chore: fix jest crash on node by @hardfist in #3206
- ci: create issue in rspack-website when a pr is merged with "need documentation" label by @Boshen in #3211
- chore: add repro link to the bug issue template by @Boshen in #3225
- chore: add
x ready
command for running everything by @Boshen in #3230 - ci: remove unnecessary
test
option from reusable-build by @Boshen in #3245 - ci: automatically create Tuesday's release PR by @Boshen in #3248
- chore: add debug shell by @hardfist in #3261
- chore: fix debug shell by @hardfist in #3264
- ci: remove nightly step from full release by @Boshen in #3265
- chore: progressively migrate webpack test case by @IWANABETHATGUY in #3256
- chore: π€ ignore title validate by @IWANABETHATGUY in #3266
- chore: add fork-ts-checker-webpack-plugin example by @hardfist in #3269
- chore: add version script by @hardfist in #3189
- chore: remove jest-github-actions-reporter by @Boshen in #3262
- chore: fix broken pnpm lockfile by @hardfist in #3274
- chore(examples): add missing private to two example packages by @Boshen in #3275
- ci: publish nightly with release script by @Boshen in #3276
- refactor: clean up node dev dependencies by @Boshen in #3229
- ci: only cache pnpm on main branch for avoiding 10GB cache limit by @Boshen in #3284
- chore: add storybook example by @hardfist in #3281
- chore: add vue examples by @h-a-n-a in #3291
- chore: add check for [ext] in output.filename by @hardfist in #3290
- chore: add dry-run by @hardfist in #3300
- chore: remove unused check-changeset.yml by @Boshen in #3299
- ci: unify ci workflow by @Boshen in #3294
- ci: no need to listen for synchronize event in "lint pr title" by @Boshen in #3314
- chore: avoid config check in webpack-test && add external test by @hardfist in #3312
- chore(webpack-test): add missing loaders (coffee and pug) by @Boshen in #3316
- chore: change monoreo root version by @hardfist in #3323
- chore: custom release by @hardfist in #3303
- chore: use custom script for stable publish by @hardfist in #3329
- chore(rspack): skip multi compiler pressure test by @Boshen in #3335
- chore: fix release ci by @hardfist in #3336
- chore: remove override by @hardfist in #3339
- chore: setup gitconfig in ci by @hardfist in #3340
- chore: setup gitconfig in ci by @hardfist in #3342
- chore: change default pr version by @hardfist in #3344
- chore(window): support window test by @suxin2017 in #3321
- chore: stale bot should make a comment, also change day until stale to 60 days by @Boshen in #3355
- chore: webpack test compatibility metric by @IWANABETHATGUY in #3343
- chore: π€ fix git url by @IWANABETHATGUY in #3365
- ci: reduce CI time by installing the least number of Rust components by @Boshen in #3364
- chore: π€ deduplicate update data by @IWANABETHATGUY in #3368
New Contributors
- @lencx made their first contribution in #2102
- @monster1935 made their first contribution in #2112
- @mewcoder made their first contribution in #2104
- @ycjcl868 made their first contribution in #2098
- @MBearo made their first contribution in #2121
- @XGHeaven made their first contribution in #2143
- @liruifengv made their first contribution in #2101
- @zscumt123 made their first contribution in #2151
- @fwqaaq made their first contribution in #2147
- @ZuBB made their first contribution in #2173
- @tuchg made their first contribution in #2167
- @zhoushaw made their first contribution in #2210
- @fi3ework made their first contribution in #2231
- @danielroe made their first contribution in #2186
- @OrangeXC made their first contribution in #2271
- @hhshii made their first contribution in #2146
- @zakuru made their first contribution in #2317
- @PengBoUESTC made their first contribution in #2244
- @SoonIter made their first contribution in #2316
- @eltociear made their first contribution in #2315
- @Nirvana-Jie made their first contribution in #2336
- @nieyuyao made their first contribution in #2345
- @KarthusLorin made their first contribution in #2432
- @so1ve made their first contribution in #2302
- @magic-akari made their first contribution in #2340
- @dhruvkelawala made their first contribution in #2492
- @ShuiRuTian made their first contribution in #2541
- @faga295 made their first contribution in #2468
- @vjpr made their first contribution in #2617
- @lsdsjy made their first contribution in #2633
- @suxin2017 made their first contribution in #2673
- @siyou made their first contribution in #2764
- @GiveMe-A-Name made their first contribution in #2835
- @lippzhang made their first contribution in #2861
- @Asuka109 made their first contribution in #2908
- @danielkoller made their first contribution in #2965
- @wood3n made their first contribution in #2963
- @dgmachado made their first contribution in #2983
- @thedeveloperpotato made their first contribution in #2992
- @nagy-nabil made their first contribution in #2987
- @sladyn98 made their first contribution in #2831
- @GarrisonD made their first contribution in #3156
- @zhangliu made their first contribution in #3201
- @edusperoni made their first contribution in #3235
- @salamaashoush made their first contribution in #3287
Full Changelog: v0.1.0...0.2.0