diff --git a/README.md b/README.md index 8e64501..2a30b59 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ npm version downloads - + license

@@ -43,6 +43,10 @@ For Rspack v1, install the `rspack-chain` v1: npm add rspack-chain@^1.0.0 -D ``` +If you are using Rspack v1, refer to the +[`v1.x` branch README](https://github.com/rstackjs/rspack-chain/blob/v1.x/README.md) +for the matching documentation. + ## Getting Started Once you have `rspack-chain` installed, you can start creating a @@ -358,7 +362,7 @@ low-level methods, please refer to their corresponding name in the RspackChain: ChainedMap; ``` -#### RspackChain shorthand methods +#### shorthand methods ```js config @@ -385,7 +389,7 @@ config .snapshot(snapshot); ``` -#### RspackChain entryPoints +#### entryPoints ```js // Backed at config.entryPoints : ChainedMap @@ -412,7 +416,7 @@ config.entryPoints .clear() ``` -#### RspackChain output: shorthand methods +#### output: shorthand methods ```js config.output : ChainedMap @@ -459,7 +463,7 @@ config.output .clean(clean) ``` -#### RspackChain resolve: shorthand methods +#### resolve: shorthand methods ```js config.resolve : ChainedMap @@ -475,7 +479,7 @@ config.resolve }); ``` -#### RspackChain resolve alias +#### resolve alias ```js config.resolve.alias : ChainedMap @@ -487,7 +491,7 @@ config.resolve.alias .clear() ``` -#### RspackChain resolve aliasFields +#### resolve aliasFields ```js config.resolve.aliasFields : ChainedSet @@ -498,7 +502,7 @@ config.resolve.aliasFields .clear() ``` -#### RspackChain resolve conditionNames +#### resolve conditionNames ```js config.resolve.conditionNames : ChainedSet @@ -509,7 +513,7 @@ config.resolve.conditionNames .clear() ``` -#### RspackChain resolve descriptionFields +#### resolve descriptionFields ```js config.resolve.descriptionFields : ChainedSet @@ -520,7 +524,7 @@ config.resolve.descriptionFields .clear() ``` -#### RspackChain resolve extensions +#### resolve extensions ```js config.resolve.extensions : ChainedSet @@ -531,7 +535,7 @@ config.resolve.extensions .clear() ``` -#### RspackChain resolve extensionAlias +#### resolve extensionAlias ```js config.resolve.extensionAlias : ChainedMap @@ -541,7 +545,7 @@ config.resolve.extensionAlias .clear() ``` -#### RspackChain resolve mainFields +#### resolve mainFields ```js config.resolve.mainFields : ChainedSet @@ -552,7 +556,7 @@ config.resolve.mainFields .clear() ``` -#### RspackChain resolve mainFiles +#### resolve mainFiles ```js config.resolve.mainFiles : ChainedSet @@ -563,7 +567,7 @@ config.resolve.mainFiles .clear() ``` -#### RspackChain resolve exportsFields +#### resolve exportsFields ```js config.resolve.exportsFields : ChainedSet @@ -574,7 +578,7 @@ config.resolve.exportsFields .clear() ``` -#### RspackChain resolve importsFields +#### resolve importsFields ```js config.resolve.importsFields : ChainedSet @@ -585,7 +589,7 @@ config.resolve.importsFields .clear() ``` -#### RspackChain resolve restrictions +#### resolve restrictions ```js config.resolve.restrictions : ChainedSet @@ -596,7 +600,7 @@ config.resolve.restrictions .clear() ``` -#### RspackChain resolve roots +#### resolve roots ```js config.resolve.roots : ChainedSet @@ -607,7 +611,7 @@ config.resolve.roots .clear() ``` -#### RspackChain resolve modules +#### resolve modules ```js config.resolve.modules : ChainedSet @@ -618,7 +622,7 @@ config.resolve.modules .clear() ``` -#### RspackChain resolve fallback +#### resolve fallback ```js config.resolve.fallback : ChainedMap @@ -630,7 +634,7 @@ config.resolve.fallback .clear() ``` -#### RspackChain resolve byDependency +#### resolve byDependency ```js config.resolve.byDependency : ChainedMap @@ -642,12 +646,12 @@ config.resolve.byDependency .clear() ``` -#### RspackChain resolveLoader +#### resolveLoader The API for `config.resolveLoader` is identical to `config.resolve` with the following additions: -#### RspackChain resolveLoader modules +#### resolveLoader modules ```js config.resolveLoader.modules : ChainedSet @@ -658,7 +662,7 @@ config.resolveLoader.modules .clear() ``` -#### RspackChain resolveLoader moduleExtensions +#### resolveLoader moduleExtensions ```js config.resolveLoader.moduleExtensions : ChainedSet @@ -669,7 +673,7 @@ config.resolveLoader.moduleExtensions .clear() ``` -#### RspackChain resolveLoader packageMains +#### resolveLoader packageMains ```js config.resolveLoader.packageMains : ChainedSet @@ -680,7 +684,7 @@ config.resolveLoader.packageMains .clear() ``` -#### RspackChain performance: shorthand methods +#### performance: shorthand methods ```js config.performance : ChainedValueMap @@ -716,7 +720,7 @@ config.optimization .realContentHash(realContentHash) ``` -#### RspackChain optimization minimizers +#### optimization minimizers ```js // Backed at config.optimization.minimizers @@ -724,7 +728,7 @@ config.optimization .minimizer(name) : ChainedMap ``` -#### RspackChain optimization minimizers: adding +#### optimization minimizers: adding _NOTE: Do not use `new` to create the minimizer plugin, as this will be done for you._ @@ -750,7 +754,7 @@ config.optimization ]); ``` -#### RspackChain optimization minimizers: modify arguments +#### optimization minimizers: modify arguments ```js config.optimization.minimizer(name).tap((args) => newArgs); @@ -761,19 +765,19 @@ config.optimization .tap((args) => [...args, { cssProcessorOptions: { safe: false } }]); ``` -#### RspackChain optimization minimizers: modify instantiation +#### optimization minimizers: modify instantiation ```js config.optimization.minimizer(name).init((Plugin, args) => new Plugin(...args)); ``` -#### RspackChain optimization minimizers: removing +#### optimization minimizers: removing ```js config.optimization.minimizers.delete(name); ``` -#### RspackChain optimization splitChunks +#### optimization splitChunks ```js config.optimization.splitChunks : ChainedValueMap @@ -788,14 +792,14 @@ config.optimization .clear() ``` -#### RspackChain plugins +#### plugins ```js // Backed at config.plugins config.plugin(name) : ChainedMap ``` -#### RspackChain plugins: adding +#### plugins: adding _NOTE: Do not use `new` to create the plugin, as this will be done for you._ @@ -818,7 +822,7 @@ config.plugin('env').use(EnvironmentPlugin, [{ VAR: false }]); config.plugin('custom').use(require.resolve('my-plugin'), [{ answer: 42 }]); ``` -#### RspackChain plugins: modify arguments +#### plugins: modify arguments ```js config.plugin(name).tap((args) => newArgs); @@ -827,19 +831,19 @@ config.plugin(name).tap((args) => newArgs); config.plugin('env').tap((args) => [...args, 'SECRET_KEY']); ``` -#### RspackChain plugins: modify instantiation +#### plugins: modify instantiation ```js config.plugin(name).init((Plugin, args) => new Plugin(...args)); ``` -#### RspackChain plugins: removing +#### plugins: removing ```js config.plugins.delete(name); ``` -#### RspackChain plugins: ordering before +#### plugins: ordering before Specify that the current `plugin` context should operate before another named `plugin`. You cannot use both `.before()` and `.after()` on the same plugin. @@ -858,7 +862,7 @@ config .before('html-template'); ``` -#### RspackChain plugins: ordering after +#### plugins: ordering after Specify that the current `plugin` context should operate after another named `plugin`. You cannot use both `.before()` and `.after()` on the same plugin. @@ -877,7 +881,7 @@ config .use(ScriptExtRspackPlugin); ``` -#### RspackChain node +#### node ```js config.node : ChainedValueMap @@ -888,13 +892,13 @@ config.node(false) .set('__filename', 'mock'); ``` -#### RspackChain devServer +#### devServer ```js config.devServer : ChainedMap ``` -#### RspackChain devServer allowedHosts +#### devServer allowedHosts ```js config.devServer.allowedHosts : ChainedSet @@ -905,7 +909,7 @@ config.devServer.allowedHosts .clear() ``` -#### RspackChain devServer: shorthand methods +#### devServer: shorthand methods ```js config.devServer @@ -961,13 +965,13 @@ config.devServer .writeToDisk(writeToDisk); ``` -#### RspackChain module +#### module ```js config.module : ChainedMap ``` -#### RspackChain module: shorthand methods +#### module: shorthand methods ```js config.module : ChainedMap @@ -975,7 +979,7 @@ config.module : ChainedMap config.module.noParse(noParse) ``` -#### RspackChain module rules: shorthand methods +#### module rules: shorthand methods ```js config.module.rules : ChainedMap @@ -988,7 +992,7 @@ config.module .enforce(preOrPost) ``` -#### RspackChain module rules uses (loaders): creating +#### module rules uses (loaders): creating ```js config.module.rules{}.uses : ChainedMap @@ -1008,7 +1012,7 @@ config.module .options({ presets: ['@babel/preset-env'] }); ``` -#### RspackChain module rules uses (loaders): modifying options +#### module rules uses (loaders): modifying options ```js config.module @@ -1028,7 +1032,7 @@ config.module ); ``` -#### RspackChain module rules nested rules: +#### module rules nested rules ```js config.module.rules{}.rules : ChainedMap @@ -1051,7 +1055,7 @@ config.module .loader('postcss-loader') ``` -#### RspackChain module rules nested rules: ordering before +#### module rules nested rules: ordering before Specify that the current `rule` context should operate before another named `rule`. You cannot use both `.before()` and `.after()` on the same `rule`. @@ -1084,7 +1088,7 @@ config.module .loader('css-loader') ``` -#### RspackChain module rules nested rules: ordering after +#### module rules nested rules: ordering after Specify that the current `rule` context should operate after another named `rule`. You cannot use both `.before()` and `.after()` on the same `rule`. @@ -1117,7 +1121,7 @@ config.module .loader('css-loader') ``` -#### RspackChain module rules oneOfs (conditional rules): +#### module rules oneOfs (conditional rules) ```js config.module.rules{}.oneOfs : ChainedMap @@ -1142,7 +1146,7 @@ config.module .loader('file-loader') ``` -#### RspackChain module rules oneOfs (conditional rules): ordering before +#### module rules oneOfs (conditional rules): ordering before Specify that the current `oneOf` context should operate before another named `oneOf`. You cannot use both `.before()` and `.after()` on the same `oneOf`. @@ -1167,7 +1171,7 @@ config.module .loader('sass-vars-to-js-loader'); ``` -#### RspackChain module rules oneOfs (conditional rules): ordering after +#### module rules oneOfs (conditional rules): ordering after Specify that the current `oneOf` context should operate after another named `oneOf`. You cannot use both `.before()` and `.after()` on the same `oneOf`. @@ -1198,7 +1202,7 @@ config.module .loader('sass-vars-to-js-loader'); ``` -#### RspackChain module rules resolve +#### module rules resolve Specify a resolve configuration to be merged over the default `config.resolve` for modules that match the rule. @@ -1218,7 +1222,7 @@ config.module --- -### Merging RspackChain +### Merging configuration rspack-chain supports merging in an object to the configuration instance which matches a layout similar to how the rspack-chain schema is laid out. @@ -1514,24 +1518,6 @@ config.toString(); */ ``` -Plugins specified via their path will inline the resolved module path in the -generated output: - -```js -import { createRequire } from 'node:module'; - -const require = createRequire(import.meta.url); - -config - .plugin('custom') - .use(require.resolve('my-plugin'), [{ jQuery: 'jquery' }]); - -config.toString(); -``` - -The resulting string will use the absolute path returned by -`require.resolve('my-plugin')` when constructing the plugin. - You can also call `toString` as a static method on `RspackChain` in order to modify the configuration object prior to stringifying. @@ -1553,7 +1539,7 @@ RspackChain.toString({ }); ``` -``` +```js { plugins: [ /* config.plugin('foo') */