chore(deps): update npm dev dependencies (major)
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| @types/node (source) | ^18.11.18 -> ^22.0.0 |
||||
| @types/node (source) | 20.12.7 -> 22.2.0 |
||||
| @βtypes/rimraf | 3.0.2 -> 4.0.5 |
||||
| chalk | ^4.1.0 -> ^5.0.0 |
||||
| coffee-loader | ^1.0.0 -> ^5.0.0 |
||||
| copy-webpack-plugin | 5.1.2 -> 12.0.2 |
||||
| css-loader | ^6.11.0 -> ^7.0.0 |
||||
| execa | ^5.0.0 -> ^9.0.0 |
||||
| glob | ^10.3.10 -> ^11.0.0 |
||||
| internal-ip | 6.2.0 -> 8.0.0 |
||||
| prettier-2 (source) | 2.8.8 -> 3.3.3 |
||||
| rimraf | 3.0.2 -> 6.0.1 |
||||
| style-loader | ^3.3.3 -> ^4.0.0 |
||||
| zod-validation-error | 1.3.1 -> 3.3.1 |
||||
| zx | 7.2.3 -> 8.1.4 |
Release Notes
chalk/chalk (chalk)
v5.3.0
v5.2.0
- Improve Deno compatibility (#β579)
7443e9f - Detect true-color support for GitHub Actions (#β579)
7443e9f - Detect true-color support for Kitty terminal (#β579)
7443e9f - Fix test for Azure DevOps environment (#β579)
7443e9f
v5.1.2
v5.1.1
- Improved the names of exports introduced in 5.1.0 (#β567)
6e0df05- We of course preserved the old names.
v5.1.0
v5.0.1
- Add
mainfield to package.json for backwards compatibility with some developer tools85f7e96
v5.0.0
Breaking
- This package is now pure ESM. Please read this.
- If you use TypeScript, you need to use TypeScript 4.7 or later. Why.
- If you use a bundler, make sure it supports ESM and that you have correctly configured it for ESM.
- The Chalk issue tracker is not a support channel for your favorite build/bundler tool.
- It's totally fine to stay on Chalk v4. It's been stable for years.
- Require Node.js 12.20
fa16f4e - Move some properties off the default export to individual named exports:
chalk.InstanceβChalkchalk.supportsColorβsupportsColorchalk.stderrβchalkStderrchalk.stderr.supportsColorβsupportsColorStderr
- Remove
.keyword(),.hsl(),.hsv(),.hwb(), and.ansi()coloring methods (#β433)4cf2e40- These were not commonly used and added a lot of bloat to Chalk. You can achieve the same by using the
color-convertpackage.
- These were not commonly used and added a lot of bloat to Chalk. You can achieve the same by using the
- The tagged template literal support moved into a separate package:
chalk-template(#β524)c987c61
-import chalk from 'chalk';
+import chalkTemplate from 'chalk-template';
-chalk`2 + 3 = {bold ${2 + 3}}`;
+chalkTemplate`2 + 3 = {bold ${2 + 3}}`;
Improvements
webpack-contrib/coffee-loader (coffee-loader)
v5.0.0
β BREAKING CHANGES
v4.0.0
β BREAKING CHANGES
- minimum supported
Node.jsversion is14.15.0
v3.0.0
β BREAKING CHANGES
- minimum supported
Node.jsversion is12.13.0
v2.0.0
β BREAKING CHANGES
- minimum supported webpack version is
5
1.0.1 (2020-10-09)
Chore
- update
schema-utils
1.0.0 (2020-05-22)
BREAKING CHANGES
- minimum required Node.js version is
10.13.0 - minimum required
webpackversion is4.0.0 - minimum required
coffeescriptversion is2.0.0 - default value for the
sourceMapoption based on the value of thecompiler.devtooloption
Features
- respect the
compiler.devtoolvalue for thesourceMapoption - developer can override CoffeeScript options
Bug Fixes
- fix error reporting
webpack-contrib/copy-webpack-plugin (copy-webpack-plugin)
v12.0.2
v12.0.1
v12.0.0
β BREAKING CHANGES
v11.0.0
β BREAKING CHANGES
- minimum supported
Node.jsversion is14.15.0
build
10.2.4 (2022-01-31)
Bug Fixes
10.2.3 (2022-01-29)
Bug Fixes
- async
tosupport (fd095fb)
10.2.2 (2022-01-28)
Bug Fixes
10.2.1 (2022-01-20)
Bug Fixes
v10.2.4
v10.2.3
v10.2.2
v10.2.1
v10.2.0
Features
- removed cjs wrapper and generated types in commonjs format (
export =andnamespacesused in types), now you can directly use exported types (#β654) (5901006)
v10.1.0
Features
Bug Fixes
v10.0.0
β BREAKING CHANGES
- minimum supported
Node.jsversion is12.20.0 - update
globbyto12.0.2version
v9.1.0
Features
Bug Fixes
- compatibility with Node.js 17 (20af0c7)
9.0.1 (2021-06-25)
Chore
- update
serialize-javascript
v9.0.1
v9.0.0
β BREAKING CHANGES
- minimum supported
Node.jsversion is12.13.0
8.1.1 (2021-04-06)
Bug Fixes
v8.1.1
v8.1.0
Features
v8.0.0
β BREAKING CHANGES
- logic for some placeholders was changed:
[hash]and[fullhash]works as in webpack (i.e. it ishashof build, not content hash of file), to migrate change[name].[hash].[ext]to[name].[contenthash][ext][ext]doesn't require.(dot) before, i.e. change[name].[ext]to[name][ext][<hashType>:contenthash:<digestType>:<length>]and[<hashType>:hash:<digestType>:<length>]is not supported anymore, you can useoutput.hashDigest,output.hashDigestLengthandoutput.hashFunctionoptions to setup it[N]was removed in favor of using thetooption as a function[folder]was removed[emoji]was removed
Features
v7.0.0
β BREAKING CHANGES
- minimum supported webpack version is
5 - the
flattenoption was removed in favor[name].[ext]value for thetooption, - the
transformPathoption was removed in favorFunctiontype of thetooption, look at examples - the
cacheTransformoption was removed in favorObjecttype of thetransformoption, look at examples - migration on the
compilation.hooks.processAssetshook - empty filtered paths throw an error, you can disable this behaviour using the
noErrorOnMissingoption
v6.4.1
6.4.1 (2020-12-16)
Bug Fixes
v6.4.0
Features
6.3.2 (2020-11-19)
Bug Fixes
6.3.1 (2020-11-13)
Bug Fixes
v6.3.2
v6.3.1
v6.3.0
Features
- added the
sourceFilenameinfo (original source filename) to assets info (#β542) (db2e3bf) - persistent cache between compilations (webpack@5 only) (#β541) (c892451)
6.2.1 (2020-10-09)
Chore
- update
schema-utils
v6.2.1
v6.2.0
Features
6.1.1 (2020-09-18)
Chore
- updated
serialize-javascript
v6.1.1
v6.1.0
Features
- added
filteroption (#β524) (1496f85) - added the
copiedflag to asset info (09b1dc9) - added the
immutableflag to asset info with hash in name (#β525) (a1989d5) - webpack@5: improve stats output for
copiedfiles
6.0.4 (2020-08-29)
Bug Fixes
6.0.3 (2020-06-30)
Bug Fixes
- do not execute on a child compiler (42f27c7)
6.0.2 (2020-06-03)
Bug Fixes
- security problem
- compatibility with
10.13version of Node.js
6.0.1 (2020-05-16)
Bug Fixes
- concurrency writing assets (#β484) (bfc712d)
- escaping special characters in the
contextoption (0e62695)
v6.0.4
v6.0.3
v6.0.2
v6.0.1
v6.0.0
β BREAKING CHANGES
- minimum supported Node.js version is
10.13, - the plugin now accepts an object, you should change
new CopyPlugin(patterns, options)tonew CopyPlugin({ patterns, options }) - migrate on
compilation.additionalAssetshook - the
ignoreoption (which accepted micromatch syntax) was removed in favorglobOptions.ignore(which accepts fast-glob pattern-syntax) - the
testoption was removed in favor thetransformPathoption - the
cacheoption was renamed to thecacheTransformoption,cacheTransformoption should have onlydirectoryandkeysproperties when it is an object - global
contextandignoreoptions were removed in favorpatten.contextandpattern.globOptions.ignoreoptions - the missing file error is now an error, before it was a warning
- the
fromoption now can only be a string, if you use{ from: { glob: 'directory/**', dot: false } }changed it to{ from: 'directory/**', globOptions: { dot: false } } - the
copyUnmodifiedwas removed without replacements - the
2version ofwebpack-dev-serveris not supported anymore - the
logLevelwas removed in favor theinfrastructureLogging.leveloption, please read the documentation
Features
- implement the
concurrencyoption (#β466) (c176d7d) - implement the
directoryoption for thecacheTransformoption (29254e3) - implement the
noErrorOnMissingoption (#β475) (e3803ce) - migrate on webpack built-in logger (#β446) (5af02bc)
Bug Fixes
5.1.1 (2019-12-12)
Bug Fixes
webpack-contrib/css-loader (css-loader)
v7.1.2
v7.1.1
v7.1.0
Features
v7.0.0
β BREAKING CHANGES
- The
modules.namedExportoption istrueby default if you enable theesModuleoption
Migration guide:
Before:
import style from "./style.css";
console.log(style.myClass);
After:
import * as style from "./style.css";
console.log(style.myClass);
- The
modules.exportLocalsConventionhas the valueas-iswhen themodules.namedExportoption istrueand you don't specify a value - Minimum supported webpack version is
5.27.0 - Minimum supported Node.js version is
18.12.0
Features
sindresorhus/execa (execa)
v9.3.0
Features
- The
verboseoption can now be a function to customize logging. (#β1130)
v9.2.0
This release includes a new set of methods to exchange messages between the current process and a Node.js subprocess, also known as "IPC". This allows passing and returning almost any message type to/from a Node.js subprocess. Also, debugging IPC is now much easier.
Moreover, a new gracefulCancel option has also been added to terminate a subprocess gracefully.
For a deeper dive-in, please check and share the release post!
Thanks @βiiroj for your contribution, @βSimonSiefke and @βadymorz for reporting the bugs fixed in this release, and @βkarlhorky for improving the documentation!
Deprecations
- Passing
'ipc'to thestdiooption has been deprecated. It will be removed in the next major release. Instead, theipc: trueoption should be used. (#β1056)
- await execa('npm', ['run', 'build'], {stdio: ['pipe', 'pipe', 'pipe', 'ipc']});
+ await execa('npm', ['run', 'build'], {ipc: true});
- The
execaCommand()method has been deprecated. It will be removed in the next major release. If most cases, the template string syntax should be used instead.
- import {execaCommand} from 'execa';
+ import {execa} from 'execa';
- await execaCommand('npm run build');
+ await execa`npm run build`;
const taskName = 'build';
- await execaCommand(`npm run ${taskName}`);
+ await execa`npm run ${taskName}`;
const commandArguments = ['run', 'task with space'];
await execa`npm ${commandArguments}`;
If the file and/or multiple arguments are supplied as a single string, parseCommandString(command) can split that string into an array. More info. (#β1054)
- import {execaCommand} from 'execa';
+ import {execa, parseCommandString} from 'execa';
const commandString = 'npm run task';
- await execaCommand(commandString);
+ const commandArray = parseCommandString(commandString); // ['npm', 'run', 'task']
+ await execa`${commandArray}`;
// Or alternatively:
const [file, ...commandArguments] = commandArray;
await execa(file, commandArguments);
Features
- Add
gracefulCanceloption andgetCancelSignal()method to terminate a subprocess gracefully.error.isGracefullyCanceledwas also added. (#β1109) - Add
error.isForcefullyTerminated. It istruewhen the subprocess was terminated by theforceKillAfterDelayoption. (#β1111) - New methods to simplify exchanging messages between the current process and the subprocess. More info. (#β1059, #β1061, #β1076, #β1077, #β1079, #β1082, #β1083, #β1086, #β1087, #β1088, #β1089, #β1090, #β1091, #β1092, #β1094, #β1095, #β1098, #β1104, #β1107)
- The current process sends messages with
subprocess.sendMessage(message)and receives them withsubprocess.getOneMessage().subprocess.getEachMessage()listens to multiple messages. - The subprocess uses
sendMessage(message),getOneMessage()andgetEachMessage()instead. Those are the same methods, but imported directly from the'execa'module.
- The current process sends messages with
- The
ipcInputoption sends an IPC message from the current process to the subprocess as it starts. This enables passing almost any input type to a Node.js subprocess. (#β1068) - The
result.ipcOutputarray contains all the IPC messages sent by the subprocess to the current process. This enables returning almost any output type from a Node.js subprocess. (#β1067, #β1071, #β1075) - The error message now contains every IPC message sent by the subprocess. (#β1067)
- The
verbose: 'full'option now logs every IPC message sent by the subprocess, for debugging. More info here and there. (#β1063)
Types
- Add
ExecaMethod,ExecaNodeMethodandExecaScriptMethod,ExecaSyncMethodandExecaScriptSyncMethodtypes. (#β1066) - Export the
Messagetype, for IPC. (#β1059) - Fix type of
forceKillAfterDelay: trueoption. (#β1116)
Bug fixes
- Fix passing a
{file}to both thestdinand thestdoutorstderroptions. (#β1058) - Fix multiple minor problems with the
cancelSignaloption. (#β1108) - Fix accidental publishing of Vim backup files. (#β1074)
- Fix
engines.nodefield inpackage.json. Supported Node.js version is^18.19.0or>=20.5.0. (by @βiiroj) (#β1101)
v9.1.0
Features (types)
- Export
TemplateExpressiontype. (#β1049)
v9.0.2
Bug fixes (types)
- Do not require using
--lib domfor TypeScript users (#β1043, #β1044) - Fix type of the
rejectoption (#β1046)
v9.0.1
Bug fixes (types)
- Fix types not being importable (#β1033)
3bdab60 - Fix complexity bug with types (#β1037)
6cc519b - Fix complexity bug with types (#β1035)
fee011d
v9.0.0
This major release brings many important features including:
- Split the output into lines, or progressively iterate over them.
- Transform or filter the input/output using simple functions.
- Print the output to the terminal while still retrieving it programmatically.
- Redirect the input/output from/to a file.
- Advanced piping between multiple subprocesses.
- Improved verbose mode, for debugging.
- More detailed errors, including when terminating subprocesses.
- Enhanced template string syntax.
- Global/shared options.
- Web streams and Transform streams support.
- Convert the subprocess to a stream.
- New documentation with many examples.
Please check the release post for a high-level overview! For the full list of breaking changes, features and bug fixes, please read below.
Thanks @βyounggglcy, @βkoshic, @βam0o0 and @βcodesmith-emmy for your help!
One of the maintainers @βehmicky is looking for a remote full-time position. Specialized in Node.js back-ends and CLIs, he led Netlify Build, Plugins and Configuration for 2.5 years. Feel free to contact him on his website or on LinkedIn!
Breaking changes
-
Minimal supported Node.js version is now
18.19.0. (834e372) -
When the
encodingoption is'buffer', the output (result.stdout,result.stderr,result.all) is now anUint8Arrayinstead of aBuffer. For more information, see this blog post. (by @βyounggglcy) (#β586)
const {stdout} = await execa('node', ['file.js'], {encoding: 'buffer'});
console.log(stdout); // This is now an Uint8Array
- await execa('node', ['file.js'], {encoding: null});
+ await execa('node', ['file.js'], {encoding: 'buffer'});
- await execa('node', ['file.js'], {encoding: 'utf-8'});
+ await execa('node', ['file.js'], {encoding: 'utf8'});
- await execa('node', ['file.js'], {encoding: 'UTF8'});
+ await execa('node', ['file.js'], {encoding: 'utf8'});
- await execa('node', ['file.js'], {encoding: 'utf-16le'});
+ await execa('node', ['file.js'], {encoding: 'utf16le'});
- await execa('node', ['file.js'], {encoding: 'ucs2'});
+ await execa('node', ['file.js'], {encoding: 'utf16le'});
- await execa('node', ['file.js'], {encoding: 'ucs-2'});
+ await execa('node', ['file.js'], {encoding: 'utf16le'});
- await execa('node', ['file.js'], {encoding: 'binary'});
+ await execa('node', ['file.js'], {encoding: 'latin1'});
- Passing a file path to
subprocess.pipeStdout(),subprocess.pipeStderr()andsubprocess.pipeAll()has been removed. Instead, a{file: './path'}object should be passed to thestdoutorstderroption. (#β752)
- await execa('node', ['file.js']).pipeStdout('output.txt');
+ await execa('node', ['file.js'], {stdout: {file: 'output.txt'}});
- await execa('node', ['file.js']).pipeStderr('output.txt');
+ await execa('node', ['file.js'], {stderr: {file: 'output.txt'}});
- await execa('node', ['file.js']).pipeAll('output.txt');
+ await execa('node', ['file.js'], {
+ stdout: {file: 'output.txt'},
+ stderr: {file: 'output.txt'},
+});
- Passing a writable stream to
subprocess.pipeStdout(),subprocess.pipeStderr()andsubprocess.pipeAll()has been removed. Instead, the stream should be passed to thestdoutorstderroption. If the stream does not have a file descriptor,['pipe', stream]should be passed instead. (#β752)
- await execa('node', ['file.js']).pipeStdout(stream);
+ await execa('node', ['file.js'], {stdout: ['pipe', stream]});
- await execa('node', ['file.js']).pipeStderr(stream);
+ await execa('node', ['file.js'], {stderr: ['pipe', stream]});
- await execa('node', ['file.js']).pipeAll(stream);
+ await execa('node', ['file.js'], {
+ stdout: ['pipe', stream],
+ stderr: ['pipe', stream],
+});
- The
subprocess.pipeStdout(),subprocess.pipeStderr()andsubprocess.pipeAll()methods have been renamed tosubprocess.pipe(). The command and its arguments can be passed tosubprocess.pipe()directly, without callingexeca()a second time. Thefrompiping option can specify'stdout'(the default value),'stderr'or'all'. (#β757)
- await execa('node', ['file.js']).pipeStdout(execa('node', ['other.js']));
+ await execa('node', ['file.js']).pipe('node', ['other.js']);
- await execa('node',
</details>
---
### Configuration
π
**Schedule**: Branch creation - "before 8am on wednesday" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined).
π¦ **Automerge**: Disabled by config. Please merge this manually once you are satisfied.
β» **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π» **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box
---
This PR was generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View the [repository job log](https://developer.mend.io/github/web-infra-dev/rspack).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMDAuMCIsInVwZGF0ZWRJblZlciI6IjM4LjIwLjEiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->
Need to fix or ignore some of these breaking changes
rimraf:
v4 to v5 There is no default export anymore. Import the functions directly using, e.g., import { rimrafSync } from 'rimraf.
invalid rimraf options
execa and internal-ip are esm only.
copy-webpack-plugin and sass-loader breaks.
Deploy Preview for rspack ready!
| Name | Link |
|---|---|
| Latest commit | 42c598ee4e2dd15a5f22ad296f967c85219c5000 |
| Latest deploy log | https://app.netlify.com/sites/rspack/deploys/66c55de6b168d100089ce0b7 |
| Deploy Preview | https://deploy-preview-5728--rspack.netlify.app |
| Preview on mobile | Toggle QR Code...Use your smartphone camera to open QR code link. |
To edit notification comments on pull requests, go to your Netlify site configuration.