Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kyrielii/webpack-to-rspack
Configuration mapping from webpack to rspack
https://github.com/kyrielii/webpack-to-rspack
rspack webpack
Last synced: 2 months ago
JSON representation
Configuration mapping from webpack to rspack
- Host: GitHub
- URL: https://github.com/kyrielii/webpack-to-rspack
- Owner: KyrieLii
- License: mit
- Created: 2023-03-05T15:34:25.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-03-05T16:05:31.000Z (almost 2 years ago)
- Last Synced: 2024-11-02T06:53:40.779Z (2 months ago)
- Topics: rspack, webpack
- Homepage: https://www.rspack.dev/guide/config-diff.html
- Size: 2.93 KB
- Stars: 26
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Configuration mapping from webpack to rspack
[Webpack](https://webpack.js.org/) is an outstanding project that has been developed over many years and supports the building of thousands of web applications.
[Rspack](https://www.rspack.dev/) is a new project that is dedicated to faster web application builds while also being compatible with the webpack ecosystem.
> This is not an official documentation and accuracy is not guaranteed. Only intended for developers as a reference. The rspack team may provide official documentation.
> Based on webpack 5.
> ✅: support
>
> ❌: not support
>
> ⚠️: partially support## Entry
### string ✅
### string[] ✅
### EntryObject ⚠️
- import: EntryItem; ✅
- runtime?: string | false; ✅
- others ❌### Function ❌
- (() => string | EntryObject | string[] | Promise) ❌
## Context ✅
## Mode ✅
## Output
### Output.assetModuleFilename ⚠️
- string ✅
- ((pathData: PathData, assetInfo?: AssetInfo) => string) ❌### Output.filename ⚠️
- string ✅
- ((pathData: PathData, assetInfo?: AssetInfo) => string) ❌### Output.chunkFilename ⚠️
- string ✅
- ((pathData: PathData, assetInfo?: AssetInfo) => string) ❌### Output.cssFilename ⚠️
- string ✅
- ((pathData: PathData, assetInfo?: AssetInfo) => string) ❌### Output.cssChunkFilename ⚠️
- string ✅
- ((pathData: PathData, assetInfo?: AssetInfo) => string) ❌### Output.path ✅
- string
### Output.publicPath ⚠️
- string ✅
- ((pathData: PathData, assetInfo?: AssetInfo) => string) ❌### Output.strictModuleErrorHandling ✅
- boolean
### Output.[...others] ❌
### Template strings ⚠️
#### Compilation-level ⚠️
- [fullhash] ✅
- [hash] ❌#### Chunk-level ✅
- [id] ✅
- [name] ✅
- [chunkhash] ✅
- [contenthash] ✅#### Module-level ⚠️
- [id] ✅
- [moduleid] ❌
- [hash] ✅
- [modulehash] ❌
- [contenthash] ✅#### File-level ⚠️
- [file] ❌
- [query] ✅
- [fragment] ❌
- [base] ❌
- [filebase] ❌
- [path] ✅
- [name] ✅
- [ext] ✅#### URL-level ❌
- [url] ❌
## Module
### Module.generator ❌
### Module.parser ⚠️
### Rule
#### Rule Condition ⚠️
- string ✅
- RegExp ✅
- function ❌#### Rule.exclude ✅
#### Rule.include ✅
#### Rule.loaders ✅
Prefer to `Rule.use`
#### Rule.parse ✅
- dataUrlCondition ✅
#### Rule.generator ⚠️
- filename ✅
- dataUrl ❌
- emit ❌
- publicPath ❌
- outputPath ❌#### Rule.resource ✅
#### Rule.resourceQuery ✅
#### Rule.sideEffects ✅
#### Rule.test ✅
#### Rule.type ⚠️
- asset/resource ✅
- asset/inline ✅
- asset/source ✅
- asset ✅Other types supported by Rspack:
- javascript/auto
- typescript
- css
- css/module
- json#### Rule.use ⚠️
- useEntry ✅
- function ❌#### Rule.resolve ⚠️
#### Rule.[...others] ❌
## Resolve
### Resolve.alias ✅
### Resolve.aliasField ⚠️
The types of this configuration are different:
- webpack: `string[]`
- Rspack: `Boolean`### Resolve.conditionNames ✅
### Resolve.extensions ⚠️
Default value are diffrent:
- webpack: `['.js', '.json', '.wasm']`
- rspack: `['.tsx', '.jsx', '.ts', '.js', '.json', '.d.ts']`### Resolve.fallback ✅
### Resolve.mainFields ✅
### Resolve.mainFiles ✅
### Resolve.modules ✅
### Resolve.preferRelative ✅
### Resolve.[...Others] ❌
## Optimization
### Optimization.moduleIds ⚠️
- natural ❌
- named ✅
- deterministic ✅
- size ❌### Optimization.minimize ✅
### Optimization.minimizer ⚠️ ???
- plugins[] ✅
- function ❌### Optimization.removeAvailableModules ⚠️
Default value are different:
- webpack: only `true` in production mode
- rspack: always `true`### Optimization.removeEmptyChunks ✅
### Optimization.runtimeChunk ⚠️
- object ❌
- string ❌
- boolean ✅### Optimization.sideEffects ✅
### Optimization.splitChunks ⚠️
_This is truly amazing, their default configurations are completely identical._
#### splitChunks.automaticNameDelimiter ✅
#### splitChunks.chunks ✅
#### splitChunks.maxAsyncRequests ✅
#### splitChunks.maxInitialRequests ✅
#### splitChunks.defaultSizeTypes ✅
#### splitChunks.minChunks ✅
#### splitChunks.hidePathInfo
#### splitChunks.minSize ⚠️
- number ✅
- object ❌#### splitChunks.minSizeReduction ⚠️
- number ✅
- object ❌#### splitChunks.enforceSizeThreshold ✅
#### splitChunks.minRemainingSize ✅
#### splitChunks.layer ❌
#### splitChunks.maxSize ✅
#### splitChunks.maxAsyncSize ✅
#### splitChunks.maxInitialSize ✅
#### splitChunks.name ✅
#### splitChunks.usedExports ❌
#### splitChunks.cacheGroups ⚠️
## Plugins
> - Some plugins can be replaced by built-in features, refer to [this list](https://www.rspack.dev/guide/plugin-compat.html).
> - Custom plugin apis : https://www.rspack.dev/api/plugin-api.html### DefinePlugin ✅
use `builtins.define`
### [tsconfig-paths-webpack-plugin](https://www.npmjs.com/package/tsconfig-paths-webpack-plugin)
use `resolve.tsConfigPath`
```js
module.exports = {
resolve: {
tsConfigPath: true,
},
};
```## Loaders
> - https://www.rspack.dev/guide/loader-compat.html
## DevServer ⚠️
// todo
## Cache ❌
rspack only supports setting to boolean values.
## Devtool ✅
## Target ⚠️
- async-node[[X].Y] ❌
- electron[[X].Y]-main ❌
- electron[[X].Y]-renderer ❌
- electron[[X].Y]-preload ❌
- node[[X].Y] ⚠️
- `node`
- node-webkit[[X].Y] ❌
- nwjs[[X].Y] ❌
- web ✅
- webworker ⚠️
- Rename to `web-worker`
- esX ✅
- browserslist ✅## Watch and WatchOptions ❌
## Externals ⚠️
- string ❌
- object ✅
- function ❌
- RegExp ❌
- [] ❌## **Performance** ❌
## Node ❌
use `resolve.fallback`
## Stats ⚠️
// todo
## Experiments ❌
Although both have the `experiments` configuration option, the experimental features of webpack and rspack are completely different, so do not configure webpack's experimental features in rspack.