Skip to content

Commit 1fb9621

Browse files
author
sunss
committed
build: 🔧 update hot webpack / babel config
1 parent 26385a9 commit 1fb9621

File tree

5 files changed

+71
-42
lines changed

5 files changed

+71
-42
lines changed

babel.config.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ module.exports = {
2424
// '@babel/plugin-transform-react-constant-elements',
2525
'@babel/plugin-proposal-class-properties',
2626
'@babel/plugin-syntax-dynamic-import',
27-
'react-hot-loader/babel',
27+
// 'react-hot-loader/babel',
2828
[
2929
'import',
3030
{

config/webpack.base.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,10 @@ module.exports = {
105105
],
106106
},
107107
resolve: {
108-
extensions: ['.ts', '.tsx', '.js', '.json', '.jsx', 'less'],
108+
extensions: ['.ts', '.tsx', '.js', '.json', '.jsx'],
109109
alias: {
110110
'@': paths.src,
111-
'react-dom': '@hot-loader/react-dom',
111+
// 'react-dom': '@hot-loader/react-dom',
112112
},
113113
},
114114
plugins: [

config/webpack.dev.js

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
const { HotModuleReplacementPlugin } = require('webpack');
2+
const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
23
const HtmlWebpackPlugin = require('html-webpack-plugin');
34
const { merge } = require('webpack-merge');
45
const common = require('./webpack.base');
@@ -7,9 +8,8 @@ const common = require('./webpack.base');
78
const devConfig = {
89
mode: 'development',
910

10-
// Add hot reloading in development
1111
entry: [
12-
'react-hot-loader/patch',
12+
// 'react-hot-loader/patch', 热更新插件已改用react-refresh
1313
// 'webpack-hot-middleware/client?reload=true',
1414
'./src/index.tsx', // Start with js/app.js
1515
],
@@ -37,6 +37,7 @@ const devConfig = {
3737
target: 'web',
3838
plugins: [
3939
new HotModuleReplacementPlugin(),
40+
new ReactRefreshWebpackPlugin(),
4041
new HtmlWebpackPlugin({
4142
inject: true, // Inject all files that are generated by webpack, e.g. bundle.js
4243
template: './public/index.html',

package.json

+4-3
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
"build": "webpack --config config/webpack.prod.js --mode production",
2020
"prebuild": "npm run build:clean",
2121
"build:clean": "rimraf ./dist",
22-
"build:deploy": "webpack --config config/webpack.deploy.js --mode production",
2322
"prettify": "prettier --write",
2423
"pretty-quick": "pretty-quick",
2524
"lint:eslint:fix": "eslint --ext .ts,.tsx --no-error-on-unmatched-pattern --quiet --fix",
@@ -50,16 +49,16 @@
5049
]
5150
},
5251
"dependencies": {
53-
"@hot-loader/react-dom": "^17.0.1",
5452
"antd": "^4.16.10",
5553
"axios": "^0.21.1",
5654
"clsx": "^1.1.1",
55+
"core-js": "3",
5756
"dayjs": "^1.10.6",
57+
"history": "^5.0.1",
5858
"lodash": "^4.17.21",
5959
"react": "^17.0.2",
6060
"react-dom": "^17.0.2",
6161
"react-helmet-async": "^1.0.9",
62-
"react-hot-loader": "^4.13.0",
6362
"react-router-dom": "^5.2.0"
6463
},
6564
"devDependencies": {
@@ -76,6 +75,7 @@
7675
"@babel/preset-typescript": "^7.15.0",
7776
"@commitlint/cli": "^13.1.0",
7877
"@commitlint/config-conventional": "^13.1.0",
78+
"@pmmmwh/react-refresh-webpack-plugin": "^0.4.3",
7979
"@types/enzyme": "^3.10.9",
8080
"@types/enzyme-adapter-react-16": "^1.0.6",
8181
"@types/enzyme-to-json": "^1.5.4",
@@ -121,6 +121,7 @@
121121
"postcss-nested": "^5.0.6",
122122
"prettier": "^2.3.2",
123123
"pretty-quick": "^3.1.1",
124+
"react-refresh": "^0.10.0",
124125
"rimraf": "^3.0.2",
125126
"serve": "^12.0.0",
126127
"style-loader": "^3.2.1",

yarn.lock

+61-34
Original file line numberDiff line numberDiff line change
@@ -1013,6 +1013,13 @@
10131013
dependencies:
10141014
regenerator-runtime "^0.13.4"
10151015

1016+
"@babel/runtime@^7.7.6":
1017+
version "7.15.3"
1018+
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b"
1019+
integrity sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA==
1020+
dependencies:
1021+
regenerator-runtime "^0.13.4"
1022+
10161023
"@babel/template@^7.14.5":
10171024
version "7.14.5"
10181025
resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4"
@@ -1208,15 +1215,6 @@
12081215
minimatch "^3.0.4"
12091216
strip-json-comments "^3.1.1"
12101217

1211-
"@hot-loader/react-dom@^17.0.1":
1212-
version "17.0.1"
1213-
resolved "https://registry.yarnpkg.com/@hot-loader/react-dom/-/react-dom-17.0.1.tgz#0c75b4dd068f819435dafb3e8809ca1749695656"
1214-
integrity sha512-QttzEibkIFkl/WV1dsLXg73YIweNo9ySbB0/26068RqFGWyv7pKyictWsaQXqSj1y66/BDn3kglCHgroGrv3vA==
1215-
dependencies:
1216-
loose-envify "^1.1.0"
1217-
object-assign "^4.1.1"
1218-
scheduler "^0.20.1"
1219-
12201218
"@humanwhocodes/config-array@^0.5.0":
12211219
version "0.5.0"
12221220
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9"
@@ -1559,6 +1557,18 @@
15591557
"@nodelib/fs.scandir" "2.1.5"
15601558
fastq "^1.6.0"
15611559

1560+
"@pmmmwh/react-refresh-webpack-plugin@^0.4.3":
1561+
version "0.4.3"
1562+
resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.4.3.tgz#1eec460596d200c0236bf195b078a5d1df89b766"
1563+
integrity sha512-br5Qwvh8D2OQqSXpd1g/xqXKnK0r+Jz6qVKBbWmpUcrbGOxUrf39V5oZ1876084CGn18uMdR5uvPqBv9UqtBjQ==
1564+
dependencies:
1565+
ansi-html "^0.0.7"
1566+
error-stack-parser "^2.0.6"
1567+
html-entities "^1.2.1"
1568+
native-url "^0.2.6"
1569+
schema-utils "^2.6.5"
1570+
source-map "^0.7.3"
1571+
15621572
"@polka/url@^1.0.0-next.15":
15631573
version "1.0.0-next.15"
15641574
resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.15.tgz#6a9d143f7f4f49db2d782f9e1c8839a29b43ae23"
@@ -2084,7 +2094,7 @@ ansi-escapes@^4.3.0:
20842094
dependencies:
20852095
type-fest "^0.21.3"
20862096

2087-
2097+
[email protected], ansi-html@^0.0.7:
20882098
version "0.0.7"
20892099
resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
20902100
integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4=
@@ -3189,6 +3199,11 @@ core-js-pure@^3.16.0:
31893199
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.16.0.tgz#218e07add3f1844e53fab195c47871fc5ba18de8"
31903200
integrity sha512-wzlhZNepF/QA9yvx3ePDgNGudU5KDB8lu/TRPKelYA/QtSnkS/cLl2W+TIdEX1FAFcBr0YpY7tPDlcmXJ7AyiQ==
31913201

3202+
core-js@3:
3203+
version "3.16.3"
3204+
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.16.3.tgz#1f2d43c51a9ed014cc6c83440af14697ae4b75f2"
3205+
integrity sha512-lM3GftxzHNtPNUJg0v4pC2RC6puwMd6VZA7vXUczi+SKmCWSf4JwO89VJGMqbzmB7jlK7B5hr3S64PqwFL49cA==
3206+
31923207
core-util-is@~1.0.0:
31933208
version "1.0.2"
31943209
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
@@ -3734,6 +3749,13 @@ error-ex@^1.3.1:
37343749
dependencies:
37353750
is-arrayish "^0.2.1"
37363751

3752+
error-stack-parser@^2.0.6:
3753+
version "2.0.6"
3754+
resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8"
3755+
integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==
3756+
dependencies:
3757+
stackframe "^1.1.1"
3758+
37373759
es-abstract@^1.17.4, es-abstract@^1.18.0, es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2:
37383760
version "1.18.5"
37393761
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19"
@@ -4634,7 +4656,7 @@ global-prefix@^3.0.0:
46344656
kind-of "^6.0.2"
46354657
which "^1.3.1"
46364658

4637-
global@^4.3.0, global@~4.4.0:
4659+
global@~4.4.0:
46384660
version "4.4.0"
46394661
resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406"
46404662
integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==
@@ -4793,7 +4815,14 @@ history@^4.9.0:
47934815
tiny-warning "^1.0.0"
47944816
value-equal "^1.0.1"
47954817

4796-
hoist-non-react-statics@^3.1.0, hoist-non-react-statics@^3.3.0:
4818+
history@^5.0.1:
4819+
version "5.0.1"
4820+
resolved "https://registry.yarnpkg.com/history/-/history-5.0.1.tgz#de35025ed08bce0db62364b47ebbf9d97b5eb06a"
4821+
integrity sha512-5qC/tFUKfVci5kzgRxZxN5Mf1CV8NmJx9ByaPX0YTLx5Vz3Svh7NYp6eA4CpDq4iA9D0C1t8BNIfvQIrUI3mVw==
4822+
dependencies:
4823+
"@babel/runtime" "^7.7.6"
4824+
4825+
hoist-non-react-statics@^3.1.0:
47974826
version "3.3.2"
47984827
resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45"
47994828
integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==
@@ -4830,7 +4859,7 @@ html-element-map@^1.2.0:
48304859
array.prototype.filter "^1.0.0"
48314860
call-bind "^1.0.2"
48324861

4833-
html-entities@^1.2.0, html-entities@^1.3.1:
4862+
html-entities@^1.2.0, html-entities@^1.2.1, html-entities@^1.3.1:
48344863
version "1.4.0"
48354864
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc"
48364865
integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==
@@ -5766,7 +5795,7 @@ loader-runner@^4.2.0:
57665795
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-4.2.0.tgz#d7022380d66d14c5fb1d496b89864ebcfd478384"
57675796
integrity sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==
57685797

5769-
loader-utils@^1.1.0, loader-utils@^1.4.0:
5798+
loader-utils@^1.4.0:
57705799
version "1.4.0"
57715800
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
57725801
integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
@@ -6314,6 +6343,13 @@ nanomatch@^1.2.9:
63146343
snapdragon "^0.8.1"
63156344
to-regex "^3.0.1"
63166345

6346+
native-url@^0.2.6:
6347+
version "0.2.6"
6348+
resolved "https://registry.yarnpkg.com/native-url/-/native-url-0.2.6.tgz#ca1258f5ace169c716ff44eccbddb674e10399ae"
6349+
integrity sha512-k4bDC87WtgrdD362gZz6zoiXQrl40kYlBmpfmSjwRO1VU0V5ccwJTlxuE72F6m3V0vc1xOf6n3UCP9QyerRqmA==
6350+
dependencies:
6351+
querystring "^0.2.0"
6352+
63176353
natural-compare@^1.4.0:
63186354
version "1.4.0"
63196355
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
@@ -7153,7 +7189,7 @@ prop-types-exact@^1.2.0:
71537189
object.assign "^4.1.0"
71547190
reflect.ownkeys "^0.2.0"
71557191

7156-
prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2:
7192+
prop-types@^15.6.2, prop-types@^15.7.2:
71577193
version "15.7.2"
71587194
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
71597195
integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==
@@ -7663,29 +7699,15 @@ react-helmet-async@^1.0.9:
76637699
react-fast-compare "^3.2.0"
76647700
shallowequal "^1.1.0"
76657701

7666-
react-hot-loader@^4.13.0:
7667-
version "4.13.0"
7668-
resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-4.13.0.tgz#c27e9408581c2a678f5316e69c061b226dc6a202"
7669-
integrity sha512-JrLlvUPqh6wIkrK2hZDfOyq/Uh/WeVEr8nc7hkn2/3Ul0sx1Kr5y4kOGNacNRoj7RhwLNcQ3Udf1KJXrqc0ZtA==
7670-
dependencies:
7671-
fast-levenshtein "^2.0.6"
7672-
global "^4.3.0"
7673-
hoist-non-react-statics "^3.3.0"
7674-
loader-utils "^1.1.0"
7675-
prop-types "^15.6.1"
7676-
react-lifecycles-compat "^3.0.4"
7677-
shallowequal "^1.1.0"
7678-
source-map "^0.7.3"
7679-
76807702
react-is@^16.12.0, react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6:
76817703
version "16.13.1"
76827704
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
76837705
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
76847706

7685-
react-lifecycles-compat@^3.0.4:
7686-
version "3.0.4"
7687-
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
7688-
integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
7707+
react-refresh@^0.10.0:
7708+
version "0.10.0"
7709+
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.10.0.tgz#2f536c9660c0b9b1d500684d9e52a65e7404f7e3"
7710+
integrity sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ==
76897711

76907712
react-router-dom@^5.2.0:
76917713
version "5.2.0"
@@ -8152,7 +8174,7 @@ scheduler@^0.19.1:
81528174
loose-envify "^1.1.0"
81538175
object-assign "^4.1.1"
81548176

8155-
scheduler@^0.20.1, scheduler@^0.20.2:
8177+
scheduler@^0.20.2:
81568178
version "0.20.2"
81578179
resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
81588180
integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
@@ -8591,6 +8613,11 @@ sprintf-js@~1.0.2:
85918613
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
85928614
integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
85938615

8616+
stackframe@^1.1.1:
8617+
version "1.2.0"
8618+
resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.2.0.tgz#52429492d63c62eb989804c11552e3d22e779303"
8619+
integrity sha512-GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==
8620+
85948621
static-extend@^0.1.1:
85958622
version "0.1.2"
85968623
resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"

0 commit comments

Comments
 (0)