Skip to content

Commit e19fd34

Browse files
LaurentClaesclaude
andcommitted
Upgrade dev tooling: webpack 5, eslint 8, prettier 3, husky 9
Major upgrades: - webpack 4 → 5 (styleguide, vanilla-drylus, extract-emotion) - webpack-cli 3 → 5, webpack-dev-server 3 → 5 - html-webpack-plugin 3 → 5, copy-webpack-plugin 5 → 12 - css-loader 2 → 7, style-loader 0.23 → 4, ts-loader 8 → 9 - babel-loader 8 → 9, tsconfig-paths-webpack-plugin 3 → 4 - eslint 6 → 8, babel-eslint → @babel/eslint-parser - eslint-plugin-react 7.12 → 7.37, eslint-plugin-jest 23 → 27 - eslint-formatter-pretty 2 → 4 - prettier 1 → 3, husky 1 → 9, lint-staged 8 → 15 - rimraf 2 → 6 Removals: - react-hot-loader + @hot-loader/react-dom (unused with webpack 5) - memory-fs (replaced by memfs for webpack 5) - file-loader (replaced by webpack 5 asset modules) - friendly-errors-webpack-plugin, better-webpack-progress - prettier-plugin-import-sort, import-sort-style-module - Deprecated babel proposal plugins (using transform variants) This removes all NODE_OPTIONS=--openssl-legacy-provider workarounds. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent b3a3b0a commit e19fd34

15 files changed

Lines changed: 7550 additions & 8890 deletions

File tree

.eslintrc.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
module.exports = {
2-
parser: 'babel-eslint',
2+
parser: '@babel/eslint-parser',
33
env: {
44
browser: true,
55
es6: true,
@@ -8,15 +8,13 @@ module.exports = {
88
},
99
parserOptions: {
1010
sourceType: 'module',
11-
ecmaFeatures: {
12-
experimentalObjectRestSpread: true,
13-
},
11+
requireConfigFile: false,
1412
},
1513
extends: [ 'eslint:recommended', 'plugin:react/recommended' ],
1614
plugins: [ 'react' ],
1715
settings: {
1816
react: {
19-
version: 'latest',
17+
version: 'detect',
2018
},
2119
},
2220
rules: {
@@ -36,7 +34,7 @@ module.exports = {
3634
'no-lone-blocks': [ 'warn' ],
3735
'no-loop-func': [ 'warn' ],
3836
'no-multi-str': [ 'warn' ],
39-
'no-native-reassign': [ 'warn' ],
37+
'no-global-assign': [ 'warn' ],
4038
'no-new-wrappers': [ 'warn' ],
4139
'no-script-url': [ 'warn' ],
4240
'no-self-compare': [ 'warn' ],

.eslintrc.ts.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ module.exports = {
2929
'no-lone-blocks': ['warn'],
3030
'no-loop-func': ['warn'],
3131
'no-multi-str': ['warn'],
32-
'no-native-reassign': ['warn'],
32+
'no-global-assign': ['warn'],
3333
'no-new-wrappers': ['warn'],
3434
'no-script-url': ['warn'],
3535
'no-self-compare': ['warn'],

.husky/pre-commit

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
npx lint-staged

.prettierrc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
"singleQuote": true,
77
"trailingComma": "all",
88
"bracketSpacing": true,
9-
"jsxBracketSameLine": true,
10-
"fluid": false,
9+
"bracketSameLine": true,
1110
"arrowParens": "always"
1211
}

babel.config.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ module.exports = function(api) {
1919
];
2020

2121
const plugins = [
22-
...(isTest ? [] : ['react-hot-loader/babel']),
2322
...(isTest ? [] : [['babel-plugin-emotion', {
2423
sourceMap: false,
2524
autoLabel: true,

0 commit comments

Comments
 (0)