Updates the webpack hashing function from the insecure md4 to xxhash64
Node uses OpenSSL for its hash functions and encryption on *nix systems. The latest version of OpenSSL disables MD4 by default—which will break any previously working program that uses MD4
Resolves the following error:
Error: error:0308010C:digital envelope routines::unsupported
at new Hash (node:internal/crypto/hash:67:19)
Adds absoluteRuntime key to babel.config.js
Replaces deprecated babe-eslint with @babel/eslint-parser
Replaces eslint-loader with eslint-webpack-plugin in webpack config
Updates loader syntax. Usage of loader notation 'style-loader!css-loader' is deprecated and replaced with
[{loader: ‘style-loader’}, {loader: ‘css-loader’}]
(#147) Upgrade to Node 18, Webpack 5, npm audit fixes
Description
Updates node, webpack, and other packages to enable security changes. Upgrades dependencies to webpack 5 compatible versions.
Notable package upgrades
Replaces deprecated (Since March 2020)
babel-eslint
with@babel/eslint-parser
Replace deprecated eslint-loader with eslint-webpack-plugin
In addition, adds the following dev dependencies
Updates node to 18
File(s):
.nvmrc
Extracts jest config to separate file
File(s):
.package.json
jest.config.js
package.json
Updates Webpack to 5
Installl latest webpack,
Updates webpack config to address CRA CommonJS import bug affecting axios/nock/jest combo
File(s):
/config/paths.js
webpack.config.js
jest.config.js
Adds support for cjs/mjs extension
See: https://github.com/facebook/create-react-app/issues/11889#issuecomment-1114928008
Adds axios to transformIgnoreModules in
jest.config.js
Updates
buildAxiosRequest.test.js
to set the addapter type to httpApp.test.js
to remove the following:Updates webpack config for breaking changes from v4 -> v5
Misc webpack config changes following migration guide: https://webpack.js.org/migrate/5/
File(s):
webpack.config.js
babel.config.js
.eslintrc.js
Updates syntax change for IgnorePlugin in webpack config
And add the following to the resolver
Updates the import statement for the
ManifestPlugin
to the following:js const { WebpackManifestPlugin } = require('webpack-manifest-plugin');
Updates the webpack hashing function from the insecure
md4
toxxhash64
Resolves the following error:
Adds absoluteRuntime key to
babel.config.js
Replaces deprecated
babe-eslint
with@babel/eslint-parser
Replaces
eslint-loader
with eslint-webpack-plugin in webpack configUpdates loader syntax. Usage of loader notation 'style-loader!css-loader' is deprecated and replaced with [{loader: ‘style-loader’}, {loader: ‘css-loader’}]
Security Fixes
Linter fixes