Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Next #1182

Draft
wants to merge 269 commits into
base: master
Choose a base branch
from
Draft

Next #1182

Changes from all commits
Commits
Show all changes
269 commits
Select commit Hold shift + click to select a range
1148d1d
styl: Fix eslint warning
vio Jul 29, 2022
8a13dd7
fix: Eslint - add __CLIENT__,__SERVER__ globals
vio Aug 3, 2022
60e9799
fix(deps): update jest monorepo to v27.4.4
renovate-bot Dec 11, 2021
580b702
fix(deps): update dependency copy-webpack-plugin to v10.1.0
renovate-bot Dec 11, 2021
5e3c58e
fix(deps): update dependency postcss to v8.4.5
renovate-bot Dec 13, 2021
be871aa
fix(deps): update babel monorepo to v7.16.5
renovate-bot Dec 14, 2021
635b850
fix(deps): update jest monorepo to v27.4.5
renovate-bot Dec 14, 2021
315be5e
fix(deps): update dependency cssnano to v5.0.13
renovate-bot Dec 16, 2021
ee2306d
fix(deps): update dependency copy-webpack-plugin to v10.2.0
renovate-bot Dec 17, 2021
5996aa7
fix(deps): update dependency terser-webpack-plugin to v5.3.0
renovate-bot Dec 17, 2021
b1ed073
fix(deps): update dependency graphql to v16.2.0
renovate-bot Dec 18, 2021
6add73c
fix(deps): update dependency stylus to v0.56.0
renovate-bot Dec 18, 2021
a58a681
fix(deps): update dependency cssnano to v5.0.14
renovate-bot Dec 21, 2021
dbd8e48
fix(deps): update dependency stylelint to v14.2.0
renovate-bot Dec 22, 2021
004d805
fix(deps): update dependency webpack-dev-server to v4.7.0
renovate-bot Dec 22, 2021
d59156c
fix(deps): update dependency webpack-dev-server to v4.7.1
renovate-bot Dec 23, 2021
77f0ca6
fix(deps): update dependency postcss-reporter to v7.0.5
renovate-bot Dec 27, 2021
c720fa3
fix(deps): update dependency autoprefixer to v10.4.1
renovate-bot Dec 30, 2021
a5cb5ed
fix(deps): update dependency webpack-dev-server to v4.7.2
renovate-bot Dec 30, 2021
c7b253f
fix(deps): update babel monorepo to v7.16.7
renovate-bot Dec 31, 2021
b61a982
fix(deps): update jest monorepo to v27.4.6
renovate-bot Jan 5, 2022
d39be7c
fix(deps): update dependency jest to v27.4.7
renovate-bot Jan 6, 2022
883afaf
fix(deps): update dependency mini-css-extract-plugin to v2.4.6
renovate-bot Jan 7, 2022
b9f7536
fix(deps): update dependency autoprefixer to v10.4.2
renovate-bot Jan 8, 2022
83ce90d
fix(deps): update dependency cssnano to v5.0.15
renovate-bot Jan 8, 2022
c3b2077
chore(deps): update dependency release-it to v14.12.1
renovate-bot Jan 10, 2022
8e7b239
fix(deps): update dependency async to v3.2.3
renovate-bot Jan 10, 2022
2b817da
chore(deps): update dependency @release-it/conventional-changelog to v4
renovate-bot Jan 10, 2022
85ee531
fix(deps): update babel monorepo to v7.16.8
renovate-bot Jan 11, 2022
10355d2
fix(deps): update dependency webpack-merge to v5
renovate-bot Jan 11, 2022
f336c58
fix(deps): update dependency workbox-webpack-plugin to v6
renovate-bot Jan 11, 2022
8999703
fix(deps): update dependency webpack-dev-server to v4.7.3
renovate-bot Jan 12, 2022
9120f90
fix(deps): update dependency webpack to v5.66.0
renovate-bot Jan 13, 2022
9487bea
chore(deps): update dependency @release-it/conventional-changelog to …
renovate-bot Jan 13, 2022
13a6122
fix(deps): update dependency dotenv to v11
renovate-bot Jan 13, 2022
720c5d9
fix(deps): update dependency mini-css-extract-plugin to v2.4.7
renovate-bot Jan 14, 2022
4afcdd4
fix(deps): update dependency mini-css-extract-plugin to v2.5.0
renovate-bot Jan 15, 2022
fb08b98
fix(deps): update dependency dotenv to v12
renovate-bot Jan 15, 2022
25dd757
chore(deps): update dependency release-it to v14.12.2
renovate-bot Jan 16, 2022
ee2b1ff
chore(deps): update dependency release-it to v14.12.3
renovate-bot Jan 17, 2022
8657c11
fix(deps): update dependency dotenv to v12.0.4
renovate-bot Jan 17, 2022
4332d96
fix(deps): update dependency node-fetch to v3.1.1
renovate-bot Jan 17, 2022
40a3f69
fix(deps): update dependency mini-css-extract-plugin to v2.5.2
renovate-bot Jan 18, 2022
481801b
fix(deps): update dependency dotenv to v14
renovate-bot Jan 18, 2022
2df418c
fix(deps): update babel monorepo to v7.16.10
renovate-bot Jan 20, 2022
3975e1b
fix(deps): update dependency @babel/preset-env to v7.16.11
renovate-bot Jan 21, 2022
8a3b939
fix(deps): update dependency copy-webpack-plugin to v10.2.1
renovate-bot Jan 21, 2022
202a8cb
fix(deps): update dependency node-fetch to v3.2.0
renovate-bot Jan 21, 2022
1b93893
fix(deps): update dependency webpack to v5.67.0
renovate-bot Jan 22, 2022
8e80e5f
fix(deps): update dependency @babel/core to v7.16.12
renovate-bot Jan 23, 2022
2a5ddf4
chore(deps): update dependency release-it to v14.12.4
renovate-bot Jan 24, 2022
4d1ef04
fix(deps): update dependency cssnano to v5.0.16
renovate-bot Jan 24, 2022
f8b04e7
fix(deps): update dependency stylelint to v14.3.0
renovate-bot Jan 24, 2022
4a3225c
fix(deps): update dependency webpack-cli to v4.9.2
renovate-bot Jan 25, 2022
3347fca
fix(deps): update dependency dotenv to v14.3.0
renovate-bot Jan 25, 2022
7b6d177
fix(deps): update dependency dotenv to v14.3.2
renovate-bot Jan 26, 2022
a079dd1
fix(deps): update dependency mini-css-extract-plugin to v2.5.3
renovate-bot Jan 26, 2022
e5b3163
fix(deps): update dependency graphql to v16.3.0
renovate-bot Jan 27, 2022
6fac1af
fix(deps): update dependency copy-webpack-plugin to v10.2.2
renovate-bot Jan 29, 2022
40d1b45
fix(deps): update dependency copy-webpack-plugin to v10.2.3
renovate-bot Jan 30, 2022
5f97d5a
fix(deps): update dependency copy-webpack-plugin to v10.2.4
renovate-bot Feb 1, 2022
1aa09a4
fix(deps): update dependency webpack to v5.68.0
renovate-bot Feb 1, 2022
471e8fa
fix(deps): update dependency dotenv to v15
renovate-bot Feb 1, 2022
3a63efd
fix(deps): update dependency postcss to v8.4.6
renovate-bot Feb 2, 2022
b81c250
fix(deps): update dependency terser-webpack-plugin to v5.3.1
renovate-bot Feb 2, 2022
6ac5319
fix(deps): update dependency dotenv to v15.0.1
renovate-bot Feb 3, 2022
b50bbe8
fix(deps): update dependency webpack-dev-server to v4.7.4
renovate-bot Feb 3, 2022
939a87d
fix(deps): update babel monorepo to v7.17.0
renovate-bot Feb 3, 2022
11874df
fix(deps): update dependency css-loader to v6.6.0
renovate-bot Feb 3, 2022
adc4ca3
fix(deps): update dependency dotenv to v16
renovate-bot Feb 3, 2022
093ea53
fix(deps): update dependency cssnano to v5.0.17
renovate-bot Feb 8, 2022
563a3c3
fix(deps): update jest monorepo to v27.5.0
renovate-bot Feb 8, 2022
d37e90f
fix(deps): update dependency @babel/core to v7.17.2
renovate-bot Feb 9, 2022
baefbb1
fix(deps): update jest monorepo to v27.5.1
renovate-bot Feb 9, 2022
cd6566c
fix(deps): update dependency stylelint to v14.4.0
renovate-bot Feb 9, 2022
015948d
fix(deps): update dependency stylelint to v14.5.0
renovate-bot Feb 11, 2022
bf16646
fix(deps): update dependency @babel/core to v7.17.4
renovate-bot Feb 16, 2022
d88820c
fix(deps): update dependency webpack to v5.69.0
renovate-bot Feb 16, 2022
0a94a5b
fix(deps): update dependency stylelint to v14.5.1
renovate-bot Feb 17, 2022
c3f34de
fix(deps): update dependency @babel/core to v7.17.5
renovate-bot Feb 18, 2022
ee7e41c
fix(deps): update dependency webpack to v5.69.1
renovate-bot Feb 18, 2022
acfb126
chore(deps): update dependency release-it to v14.12.5
renovate-bot Feb 23, 2022
fc36f15
fix(deps): update dependency fs-extra to v10.0.1
renovate-bot Feb 23, 2022
decceb4
fix(deps): update dependency stylelint to v14.5.2
renovate-bot Feb 23, 2022
1a2e883
fix(deps): update dependency stylelint to v14.5.3
renovate-bot Feb 24, 2022
ca8499e
fix(deps): update dependency workbox-webpack-plugin to v6.5.0
renovate-bot Feb 24, 2022
8147383
fix(deps): update dependency postcss to v8.4.7
renovate-bot Feb 25, 2022
e5ff70d
chore(deps): update dependency @release-it/conventional-changelog to …
renovate-bot Feb 26, 2022
d0b0473
chore(deps): update actions/setup-node action to v3
renovate-bot Feb 26, 2022
abc1034
fix(deps): update dependency node-fetch to v3.2.1
renovate-bot Mar 2, 2022
fbd57c9
fix(deps): update dependency cssnano to v5.1.0
renovate-bot Mar 2, 2022
161dab0
chore(deps): update actions/checkout action to v3
renovate-bot Mar 2, 2022
ab24bb1
fix(deps): update dependency workbox-webpack-plugin to v6.5.1
renovate-bot Mar 4, 2022
202af79
fix(deps): update dependency mini-css-extract-plugin to v2.6.0
renovate-bot Mar 4, 2022
20795a1
fix(deps): update dependency webpack to v5.70.0
renovate-bot Mar 4, 2022
2f7023f
fix(deps): update dependency css-loader to v6.7.0
renovate-bot Mar 5, 2022
afb31dd
fix(deps): update dependency postcss to v8.4.8
renovate-bot Mar 7, 2022
e4d8e60
fix(deps): update dependency node-fetch to v3.2.2
renovate-bot Mar 8, 2022
eaa9caf
fix(deps): update dependency css-loader to v6.7.1
renovate-bot Mar 9, 2022
42f62d9
fix(deps): update dependency cssnano to v5.1.1
renovate-bot Mar 9, 2022
ad8c88e
chore(deps): update dependency @release-it/conventional-changelog to …
renovate-bot Mar 12, 2022
277ea54
fix(deps): update dependency cssnano to v5.1.3
renovate-bot Mar 12, 2022
a9a524d
fix(deps): update dependency node-fetch to v3.2.3
renovate-bot Mar 12, 2022
2648f15
fix(deps): update dependency cssnano to v5.1.4
renovate-bot Mar 14, 2022
468c6ec
fix(deps): update dependency @babel/core to v7.17.7
renovate-bot Mar 15, 2022
7f63bde
fix(deps): update dependency autoprefixer to v10.4.3
renovate-bot Mar 16, 2022
fd84cd1
fix(deps): update dependency postcss to v8.4.12
renovate-bot Mar 16, 2022
ee63faa
fix(deps): update dependency autoprefixer to v10.4.4
renovate-bot Mar 17, 2022
1f379b3
fix(deps): update dependency stylelint to v14.6.0
renovate-bot Mar 17, 2022
ad7bc41
fix(deps): update dependency debug to v4.3.4
renovate-bot Mar 18, 2022
bf2dd50
fix(deps): update dependency @babel/core to v7.17.8
renovate-bot Mar 19, 2022
d04f552
chore(deps): update dependency release-it to v14.13.0
renovate-bot Mar 20, 2022
37f8b08
chore(deps): update dependency release-it to v14.13.1
renovate-bot Mar 21, 2022
d2fd781
fix(deps): update dependency cssnano to v5.1.5
renovate-bot Mar 22, 2022
34cea44
chore(deps): update actions/cache action to v3
renovate-bot Mar 22, 2022
bd6871a
fix(deps): update dependency babel-loader to v8.2.4
renovate-bot Mar 23, 2022
89d86ea
fix(deps): update dependency stylus to v0.57.0
renovate-bot Mar 23, 2022
779d55e
fix(deps): update dependency workbox-webpack-plugin to v6.5.2
renovate-bot Mar 25, 2022
7649dd6
fix(deps): update dependency stylelint to v14.6.1
renovate-bot Mar 26, 2022
3fbdaf5
chore(deps): update dependency release-it to v14.14.0
renovate-bot Apr 1, 2022
7b2e9cd
fix(deps): update dependency cssnano to v5.1.7
renovate-bot Apr 1, 2022
f7c3312
fix(deps): update dependency webpack to v5.71.0
renovate-bot Apr 2, 2022
60112c7
fix(deps): update dependency webpack-dev-server to v4.8.0
renovate-bot Apr 5, 2022
b73a7bc
fix(deps): update dependency @babel/core to v7.17.9
renovate-bot Apr 6, 2022
1df64fa
fix(deps): update dependency webpack-dev-server to v4.8.1
renovate-bot Apr 7, 2022
36e5430
fix(deps): update dependency webpack to v5.72.0
renovate-bot Apr 8, 2022
ae3585c
chore(deps): update dependency release-it to v14.14.1
renovate-bot Apr 10, 2022
58e7b90
chore(deps): update dependency release-it to v14.14.2
renovate-bot Apr 12, 2022
7fdf06a
fix(deps): update dependency workbox-webpack-plugin to v6.5.3
renovate-bot Apr 12, 2022
c72a801
chore(deps): update dependency @release-it/conventional-changelog to …
renovate-bot Apr 15, 2022
151889e
fix(deps): update dependency stylelint to v14.7.0
renovate-bot Apr 16, 2022
4307c92
fix(deps): update dependency fs-extra to v10.1.0
renovate-bot Apr 17, 2022
2cc4836
fix(deps): update dependency stylelint to v14.7.1
renovate-bot Apr 18, 2022
9742ffd
fix(deps): update dependency babel-loader to v8.2.5
renovate-bot Apr 20, 2022
c09a170
fix(deps): update dependency autoprefixer to v10.4.5
renovate-bot Apr 23, 2022
4fcd2c1
fix(deps): update dependency graphql to v16.4.0
renovate-bot Apr 26, 2022
f205c30
fix(deps): update jest monorepo to v28
renovate-bot Apr 26, 2022
edb2fcc
fix(deps): update jest monorepo to v28.0.1
renovate-bot Apr 27, 2022
adf05ff
fix(deps): update dependency stylelint to v14.8.0
renovate-bot Apr 27, 2022
41d7a70
fix(deps): update jest monorepo to v28.0.2
renovate-bot Apr 28, 2022
4b10a43
fix(deps): update dependency node-fetch to v3.2.4
renovate-bot Apr 28, 2022
55a47a4
chore(deps): update dependency release-it to v14.14.3
renovate-bot Apr 30, 2022
8a0b9c5
fix(deps): update babel monorepo to v7.17.10
renovate-bot Apr 30, 2022
a42ace8
fix(deps): update dependency postcss to v8.4.13
renovate-bot Apr 30, 2022
32333f9
fix(deps): update dependency stylelint to v14.8.1
renovate-bot Apr 30, 2022
c0030f5
fix(deps): update jest monorepo to v28.0.3
renovate-bot Apr 30, 2022
c644412
chore(deps): update dependency @release-it/conventional-changelog to v5
renovate-bot May 1, 2022
f69bfb9
chore(deps): update dependency release-it to v15
renovate-bot May 1, 2022
40c4be8
fix(deps): update dependency autoprefixer to v10.4.6
renovate-bot May 1, 2022
cecbde3
fix(deps): update dependency autoprefixer to v10.4.7
renovate-bot May 3, 2022
0a6c03e
fix(deps): update dependency stylelint to v14.8.2
renovate-bot May 4, 2022
9a7ef03
fix(deps): update dependency webpack-dev-server to v4.9.0
renovate-bot May 5, 2022
a594634
fix(deps): update jest monorepo to v28.1.0
renovate-bot May 7, 2022
f6866df
fix(deps): update dependency graphql to v16.5.0
renovate-bot May 10, 2022
a84cbfb
fix(deps): update dependency dotenv to v16.0.1
renovate-bot May 11, 2022
e4b7000
fix(deps): update dependency webpack to v5.72.1
renovate-bot May 11, 2022
9f8dc17
fix(deps): update babel monorepo to v7.17.12
renovate-bot May 16, 2022
f35fcf8
fix(deps): update dependency cssnano to v5.1.8
renovate-bot May 17, 2022
31072a3
fix(deps): update dependency copy-webpack-plugin to v11
renovate-bot May 18, 2022
fee0c03
fix(deps): update dependency stylus-loader to v7
renovate-bot May 18, 2022
ea653dc
fix(deps): update dependency postcss to v8.4.14
renovate-bot May 19, 2022
cc4ecaa
fix(deps): update dependency postcss-loader to v7
renovate-bot May 19, 2022
2ed760f
fix(deps): update babel monorepo to v7.18.0
renovate-bot May 19, 2022
1f3c219
fix(deps): update dependency cssnano to v5.1.9
renovate-bot May 20, 2022
5bcd150
fix(deps): update dependency stylelint to v14.8.3
renovate-bot May 22, 2022
3af12b9
fix(deps): update dependency stylelint to v14.8.4
renovate-bot May 25, 2022
db967eb
fix(deps): update babel monorepo to v7.18.2
renovate-bot May 26, 2022
d66861c
fix(deps): update dependency stylelint to v14.8.5
renovate-bot May 26, 2022
48d55b1
fix(deps): update dependency stylus to v0.58.0
renovate-bot May 28, 2022
a360678
fix(deps): update dependency cssnano to v5.1.10
renovate-bot May 30, 2022
164c570
fix(deps): update dependency stylus to v0.58.1
renovate-bot Jun 1, 2022
8e086a8
fix(deps): update dependency webpack-dev-server to v4.9.1
renovate-bot Jun 1, 2022
8f89bc2
fix(deps): update dependency node-fetch to v3.2.5
renovate-bot Jun 2, 2022
fa563bb
fix(deps): update dependency terser-webpack-plugin to v5.3.3
renovate-bot Jun 2, 2022
dc77c7d
fix(deps): update dependency webpack to v5.73.0
renovate-bot Jun 2, 2022
f9db5da
fix(deps): update dependency cssnano to v5.1.11
renovate-bot Jun 4, 2022
cee142b
fix(deps): update dependency webpack-dev-server to v4.9.2
renovate-bot Jun 7, 2022
963fb46
fix(deps): update dependency async to v3.2.4
renovate-bot Jun 8, 2022
c904c99
fix(deps): update jest monorepo to v28.1.1
renovate-bot Jun 8, 2022
9e41963
fix(deps): update dependency stylelint to v14.9.0
renovate-bot Jun 9, 2022
23ddfbf
fix(deps): update dependency node-fetch to v3.2.6
renovate-bot Jun 10, 2022
5be9714
fix(deps): update dependency stylelint to v14.9.1
renovate-bot Jun 11, 2022
a8bc369
fix(deps): update dependency webpack-cli to v4.10.0
renovate-bot Jun 13, 2022
d266304
fix(deps): update babel monorepo to v7.18.5
renovate-bot Jun 14, 2022
19ddd68
fix(deps): update dependency mini-css-extract-plugin to v2.6.1
renovate-bot Jun 16, 2022
e247682
fix(deps): update dependency cssnano to v5.1.12
renovate[bot] Jun 19, 2022
2fa4e98
chore(deps): update dependency release-it to v15.1.0
renovate[bot] Jun 22, 2022
528b4ae
fix(deps): update babel monorepo to v7.18.6
renovate[bot] Jun 27, 2022
429aadc
chore(deps): update dependency release-it to v15.1.1
renovate[bot] Jun 29, 2022
0ec6391
fix(deps): update dependency webpack-dev-server to v4.9.3
renovate[bot] Jun 29, 2022
1ba87c9
fix(deps): update jest monorepo to v28.1.2
renovate[bot] Jun 30, 2022
a126ae9
fix(deps): update dependency node-fetch to v3.2.7
renovate[bot] Jul 12, 2022
cbd77cb
fix(deps): update dependency postcss-loader to v7.0.1
renovate[bot] Jul 12, 2022
953381d
fix(deps): update dependency node-fetch to v3.2.8
renovate[bot] Jul 13, 2022
59a59dc
fix(deps): update jest monorepo to v28.1.3
renovate[bot] Jul 14, 2022
7e210d3
chore(deps): update dependency release-it to v15.1.2
renovate[bot] Jul 17, 2022
819dde9
fix(deps): update babel monorepo to v7.18.9
renovate[bot] Jul 18, 2022
9c37e63
fix(deps): update dependency node-fetch to v3.2.9
renovate[bot] Jul 19, 2022
038e285
chore(deps): update dependency release-it to v15.1.3
renovate[bot] Jul 21, 2022
1b4a5cf
chore(deps): update dependency release-it to v15.1.4
renovate[bot] Jul 25, 2022
2150268
fix(deps): update dependency webpack to v5.74.0
renovate[bot] Jul 26, 2022
cafa954
chore(deps): update dependency release-it to v15.2.0
renovate[bot] Jul 27, 2022
b163ec3
fix(deps): update dependency workbox-webpack-plugin to v6.5.4
renovate[bot] Jul 28, 2022
77d48cc
fix(deps): update dependency autoprefixer to v10.4.8
renovate[bot] Jul 29, 2022
03d7b8d
fix(deps): update dependency node-fetch to v3.2.10
renovate[bot] Jul 31, 2022
27c85b5
fix(deps): update babel monorepo to v7.18.10
renovate[bot] Aug 2, 2022
98c907c
fix(deps): update dependency @moonwalker/pre-flight-check to v1.4.6
renovate[bot] Aug 3, 2022
28e98b3
build: Update github action - setup node with cache + nvmrc
vio Aug 4, 2022
c04a357
build: Update renovate schedule
vio Aug 4, 2022
5e6a138
build: Update release-it flow
vio Aug 4, 2022
cd88c33
Merge pull request #1171 from moonwalker/update-build-flow
vio Aug 4, 2022
ace8e2c
feat: Expose PRODUCT env on dev mode
vio May 6, 2022
77a7f3c
fix: Expose env PRODUCT config
vio May 6, 2022
4ee5960
build: Run app with APP_PRODUCT
vio May 6, 2022
7cf6067
Revert "build: Run app with APP_PRODUCT"
vio May 10, 2022
5ba63ac
fix: Define - do not compile PRODUCT value
vio May 10, 2022
e6ed6c3
styl: Fix eslint warning
vio Jul 29, 2022
2e3c105
chore: Regenerate lock file
vio Aug 4, 2022
cd453e7
fix: Revert webpack-merge@5
vio Aug 4, 2022
d57067a
fix: Revert css-loader to v5
vio Aug 4, 2022
346bef6
fix: Webpack - migrate webpack-dev-server config to v4
vio Aug 5, 2022
cfa95db
fix: Revert workbox-webpack-plugin@4
vio Aug 5, 2022
6da740e
fix: Define API_HOST_SSR
vio Aug 5, 2022
f350fb0
fix: Define process.env.ENV
vio Aug 5, 2022
e522d96
feat: Enable react-refresh
vio Aug 8, 2022
0b1cbad
fix: Set optimization.runtimeChunk:single
vio Aug 8, 2022
2ecb76f
fix: Remove obsolete packages
vio Aug 8, 2022
511ea1a
feat: Eslint - do not export / prod depend on @moonwalker/pre-flight-…
vio Aug 8, 2022
91e54a3
feat: Export jetpack configs
vio Aug 8, 2022
de5695a
fix: Render - set target = node
vio Aug 19, 2022
bd33d1d
fix: Render - explicit package.json main fields
vio Aug 19, 2022
6558719
chore: Update [email protected]
vio Aug 22, 2022
6ff8100
DROP - release 4.2.0-beta.12
vio Aug 23, 2022
ae56e6e
Revert "chore: Update [email protected]"
vio Aug 23, 2022
6c91317
DROP - release 4.2.0-beta.13
vio Aug 23, 2022
ac96536
Revert "Revert "chore: Update [email protected]""
vio Aug 23, 2022
4acb3eb
FIXUP: presets
vio Aug 23, 2022
f36b202
FIXUP
vio Aug 24, 2022
2025fa7
DROP - release 4.2.0-beta.14
vio Aug 24, 2022
b2e6a4f
DROP - release 4.2.0-beta.15
vio Aug 24, 2022
31b849f
FIXUP
vio Aug 24, 2022
c3a256e
DROP - release 4.2.0-beta.16
vio Aug 24, 2022
0bfa3f4
FIXUP
vio Aug 24, 2022
4a67138
DROP - release 4.2.0-beta.17
vio Aug 24, 2022
c265ab9
fix: Explicit loader usage
vio Aug 26, 2022
3a96010
DROP - release 4.2.0-beta.18
vio Aug 26, 2022
df6c82b
fix: Javascript preset - allow to override with rule
vio Aug 26, 2022
683b4ea
DROP - release 4.2.0-beta.19
vio Aug 26, 2022
b96d5eb
chore: Update babel dependencies
vio Oct 11, 2022
601beed
DROP - release 4.2.0-beta.20
vio Oct 11, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 22 additions & 40 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -5,33 +5,24 @@ on: push
jobs:
lint:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Use Node.js ${{matrix.node-version}}
uses: actions/setup-node@v1
# Cache packages when the branch is not update-dependencies or dependabot/*
- name: Resolve caching
id: cache
if: ${{ github.ref_name != 'update-dependencies' && !startsWith(github.ref_name, 'renovate/') }}
run: echo "::set-output name=PACKAGE::yarn"

- name: Use Node.js
uses: actions/setup-node@v3
with:
cache: ${{ steps.cache.outputs.PACKAGE }}
node-version-file: '.nvmrc'
always-auth: true
registry-url: 'https://registry.npmjs.org'
node-version: ${{matrix.node-version}}
scope: '@moonwalker'

# Cache yarn dependencies
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"

- uses: actions/cache@v1
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- run: yarn --frozen-lockfile
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
@@ -45,34 +36,25 @@ jobs:
if: contains(github.ref, 'refs/tags/v')

runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14.x]

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3

- name: Use Node.js ${{matrix.node-version}}
uses: actions/setup-node@v1
# Cache packages when the branch is not update-dependencies or dependabot/*
- name: Resolve caching
id: cache
if: ${{ github.ref_name != 'update-dependencies' && !startsWith(github.ref_name, 'renovate/') }}
run: echo "::set-output name=PACKAGE::yarn"

- name: Use Node.js
uses: actions/setup-node@v3
with:
cache: ${{ steps.cache.outputs.PACKAGE }}
node-version-file: '.nvmrc'
always-auth: true
registry-url: 'https://registry.npmjs.org'
node-version: ${{matrix.node-version}}
scope: '@moonwalker'

# Cache yarn dependencies
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"

- uses: actions/cache@v1
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- run: yarn --frozen-lockfile
env:
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
v18
7 changes: 4 additions & 3 deletions config/release-it/branch.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
const { merge } = require('lodash');
const config = require('./common');

module.exports = merge({}, config, {
module.exports = {
...config,
git: {
...config.git,
// eslint-disable-next-line no-template-curly-in-string
commitMessage: 'DROP - release ${version}'
}
});
};
4 changes: 3 additions & 1 deletion config/release-it/common.js
Original file line number Diff line number Diff line change
@@ -12,7 +12,9 @@ module.exports = {
tagName: 'v${version}'
},
npm: {
publish: false
publish: false,
ignoreVersion: true,
allowSameVersion: true
},
github: {
draft: false,
15 changes: 9 additions & 6 deletions config/release-it/master.js
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
const { merge } = require('lodash');
const config = require('./common');

module.exports = merge({}, config, {
module.exports = {
...config,
git: {
...config.git,
// eslint-disable-next-line no-template-curly-in-string
commitMessage: ':package: release ${version}'
},
github: {
...config.github,
release: true
},
plugins: {
// '@release-it/conventional-changelog': {
// preset: 'eslint'
// }
...config.plugins,
'@release-it/conventional-changelog': {
preset: 'angular'
}
}
});
};
8 changes: 5 additions & 3 deletions config/release-it/release.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,17 @@
const { merge } = require('lodash');
const config = require('./common');

module.exports = merge({}, config, {
module.exports = {
...config,
git: {
...config.git,
commit: false,
push: false,
tag: false,
requireCleanWorkingDir: false,
requireUpstream: false
},
npm: {
...config.npm,
publish: true
}
});
};
53 changes: 53 additions & 0 deletions configs/babelrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
module.exports = {
presets: [
[
'@babel/preset-env',
{
modules: false
}
],
'@babel/preset-react'
],
plugins: [
[
'@babel/plugin-transform-runtime',
{
corejs: false,
helpers: true,
regenerator: true,
useESModules: false
}
],
'@babel/plugin-proposal-throw-expressions',
'@babel/plugin-syntax-dynamic-import',
'@babel/plugin-syntax-import-meta',
'babel-plugin-transform-react-remove-prop-types',
'graphql-tag',
'lodash',
'react-require'
],
env: {
development: {
plugins: [require.resolve('react-refresh/babel')]
},
test: {
presets: ['@babel/preset-env', '@babel/preset-react'],
plugins: [
'@babel/plugin-proposal-throw-expressions',
'@babel/plugin-syntax-dynamic-import',
'@babel/plugin-syntax-import-meta',
'react-require'
]
},
render: {
presets: [['@babel/preset-env', { targets: { node: 'current' } }], '@babel/preset-react'],
plugins: [
'@babel/plugin-proposal-throw-expressions',
'@babel/plugin-syntax-dynamic-import',
'@babel/plugin-syntax-import-meta',
'babel-plugin-transform-react-remove-prop-types',
'react-require'
]
}
}
};
42 changes: 0 additions & 42 deletions configs/babelrc.json

This file was deleted.

12 changes: 3 additions & 9 deletions configs/eslint.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,7 @@
const path = require('path');

const extendConfigPath = path.join(
path.dirname(require.resolve('@moonwalker/pre-flight-check')),
'eslint'
);

module.exports = {
extends: extendConfigPath,
globals: {
APP_CONFIG: true
APP_CONFIG: true,
__CLIENT__: true,
__SERVER__: true
}
};
1 change: 1 addition & 0 deletions index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
module.exports.webpackConfigs = require('./src/webpack/config');
94 changes: 46 additions & 48 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
{
"name": "@moonwalker/jetpack",
"version": "3.2.5",
"version": "4.2.0-beta.20",
"description": "Webpack for Moonwalkers",
"license": "MIT",
"bin": {
"jetpack": "bin/jetpack.sh"
},
"main": "index.js",
"types": "types/index.d.ts",
"scripts": {
"start": "bin/jetpack.js",
@@ -17,70 +18,67 @@
"release": "./scripts/release.sh"
},
"dependencies": {
"@babel/core": "7.14.6",
"@babel/plugin-proposal-export-namespace-from": "7.14.5",
"@babel/plugin-proposal-function-sent": "7.14.5",
"@babel/plugin-proposal-throw-expressions": "7.14.5",
"@babel/core": "7.19.3",
"@babel/plugin-proposal-export-namespace-from": "7.18.9",
"@babel/plugin-proposal-function-sent": "7.18.6",
"@babel/plugin-proposal-throw-expressions": "7.18.6",
"@babel/plugin-syntax-dynamic-import": "7.8.3",
"@babel/plugin-syntax-import-meta": "7.10.4",
"@babel/plugin-transform-runtime": "7.14.5",
"@babel/preset-env": "7.14.7",
"@babel/preset-react": "7.14.5",
"@moonwalker/pre-flight-check": "1.3.5",
"assets-webpack-plugin": "5.1.2",
"async": "3.2.0",
"autoprefixer": "10.2.6",
"babel-jest": "27.0.5",
"babel-loader": "8.2.2",
"@babel/plugin-transform-runtime": "7.19.1",
"@babel/preset-env": "7.19.4",
"@babel/preset-react": "7.18.6",
"@pmmmwh/react-refresh-webpack-plugin": "0.5.7",
"assets-webpack-plugin": "7.1.1",
"async": "3.2.4",
"autoprefixer": "10.4.8",
"babel-jest": "28.1.3",
"babel-loader": "8.2.5",
"babel-plugin-graphql-tag": "3.3.0",
"babel-plugin-lodash": "3.3.4",
"babel-plugin-react-docgen": "4.2.1",
"babel-plugin-react-require": "3.1.3",
"babel-plugin-transform-react-remove-prop-types": "0.4.24",
"bundle-stats-webpack-plugin": "3.0.1",
"clean-webpack-plugin": "3.0.0",
"copy-webpack-plugin": "6.4.0",
"css-loader": "5.2.6",
"cssnano": "5.0.6",
"debug": "4.3.1",
"dotenv": "10.0.0",
"fetch-cached": "2.0.3",
"clean-webpack-plugin": "4.0.0",
"copy-webpack-plugin": "11.0.0",
"css-loader": "6.7.1",
"cssnano": "5.1.12",
"debug": "4.3.4",
"dotenv": "16.0.1",
"file-loader": "6.2.0",
"friendly-errors-webpack-plugin": "1.7.0",
"fs-extra": "10.0.0",
"generate-json-webpack-plugin": "1.0.0",
"graphql": "15.5.1",
"graphql-tag": "2.12.4",
"fs-extra": "10.1.0",
"generate-json-webpack-plugin": "2.0.0",
"graphql": "16.5.0",
"graphql-tag": "2.12.6",
"html-minifier": "4.0.0",
"html-webpack-plugin": "4.5.2",
"jest": "27.0.5",
"html-webpack-plugin": "5.5.0",
"jest": "28.1.3",
"json-stringify-safe": "5.0.1",
"lodash": "4.17.21",
"mini-css-extract-plugin": "1.6.0",
"node-fetch": "2.6.1",
"postcss": "8.3.5",
"postcss-loader": "4.3.0",
"postcss-reporter": "7.0.2",
"mini-css-extract-plugin": "2.6.1",
"node-fetch": "3.2.10",
"postcss": "8.4.14",
"postcss-loader": "7.0.1",
"postcss-reporter": "7.0.5",
"promise-retry": "2.0.1",
"react-refresh": "0.14.0",
"react-svg-loader": "3.0.3",
"source-map-loader": "^1.1.2",
"speed-measure-webpack-plugin": "1.5.0",
"stats-webpack-plugin": "0.7.0",
"style-loader": "2.0.0",
"stylelint": "13.13.1",
"stylus": "0.54.8",
"stylus-loader": "3.0.2",
"terser-webpack-plugin": "4.2.3",
"webpack": "4.44.1",
"webpack-bundle-analyzer": "4.4.2",
"webpack-cli": "4.7.2",
"webpack-dev-server": "3.11.2",
"style-loader": "3.3.1",
"stylelint": "14.9.1",
"stylus": "0.58.1",
"stylus-loader": "7.0.0",
"terser-webpack-plugin": "5.3.3",
"webpack": "5.74.0",
"webpack-cli": "4.10.0",
"webpack-dev-server": "4.9.3",
"webpack-merge": "4.2.2",
"workbox-webpack-plugin": "4.3.1",
"worker-farm": "1.7.0",
"xmlbuilder": "15.1.1"
"worker-farm": "1.7.0"
},
"devDependencies": {
"@release-it/conventional-changelog": "2.0.1",
"release-it": "14.6.2"
"@moonwalker/pre-flight-check": "1.4.6",
"@release-it/conventional-changelog": "5.0.0",
"release-it": "15.2.0"
}
}
9 changes: 5 additions & 4 deletions renovate.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
{
"extends": ["config:base"],
"timezone": "CET",
"schedule": ["after 1am and before 6am"],
"prHourlyLimit": 20,
"timezone": "Europe/Madrid",
"schedule": ["after 1am and before 6am on wednesday"],
"automergeSchedule": ["after 1am and before 6am on wednesday"],
"prHourlyLimit": 10,
"baseBranches": ["update-dependencies"],
"automerge": true,
"semanticCommits": true
"semanticCommits": "enabled"
}
2 changes: 1 addition & 1 deletion scripts/release.sh
Original file line number Diff line number Diff line change
@@ -3,4 +3,4 @@
TAG=$(git describe --tags --abbrev=0)
VERSION=${TAG:1}

./node_modules/.bin/release-it --config ./config/release-it/release.js --ci $VERSION
./node_modules/.bin/release-it $VERSION --config ./config/release-it/release.js --ci
1 change: 1 addition & 0 deletions src/constants.js
Original file line number Diff line number Diff line change
@@ -8,6 +8,7 @@ module.exports.ENV = process.env.ENV || process.env.env || '';

module.exports.CONTENT_SVC = process.env.CONTENT_SVC || '127.0.0.1:51051';
module.exports.SVCNAME = process.env.SVCNAME || 'jetpack-server';
module.exports.PRODUCT = process.env.PRODUCT || 'jetpack';
module.exports.COMMIT = (process.env.COMMIT || 'dev').substring(0, 7);
module.exports.BUILT = process.env.BUILT || 'n/a';
module.exports.NAMESPACE = process.env.NAMESPACE || 'default';
4 changes: 2 additions & 2 deletions src/utils/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const { execSync } = require('child_process');

const { ENV, NAMESPACE, RELEASE, API_HOST, TRACK_HOST } = require('../constants');
const { ENV, NAMESPACE, RELEASE, API_HOST, TRACK_HOST, PRODUCT } = require('../constants');
const debug = require('./debug');
const perf = require('./perf');

@@ -9,7 +9,7 @@ const getCommitId = () =>
process.env.COMMIT || execSync('git rev-parse --short HEAD').toString().trim();

const getEnvMiddleware = () => (_, reply) => {
const config = { ENV, NAMESPACE, RELEASE, API_HOST, TRACK_HOST };
const config = { ENV, NAMESPACE, RELEASE, API_HOST, TRACK_HOST, PRODUCT };

reply
.header('Cache-Control', 'no-store, no-cache, must-revalidate')
6 changes: 1 addition & 5 deletions src/webpack/config/common-chunks.js
Original file line number Diff line number Diff line change
@@ -8,16 +8,12 @@ module.exports = () => ({

// Hashed module ids
// https://webpack.js.org/configuration/optimization/#optimization-moduleids
moduleIds: 'hashed',
moduleIds: 'deterministic',

// Code spllitting
splitChunks: {
chunks: 'all',

// Using named chunks is causing cache invalidation when the chunk will
// be used by another chunk. Keeping names for tracking & debugging.
// https://medium.com/webpack/webpack-4-code-splitting-chunk-graph-and-the-splitchunks-optimization-be739a861366
name: true,
hidePathInfo: false,

// Disable automatically chunking for async chunks
5 changes: 2 additions & 3 deletions src/webpack/config/css.js
Original file line number Diff line number Diff line change
@@ -22,9 +22,8 @@ module.exports = (options, env) => {
modules: {
exportOnlyLocals: node,
localIdentContext: paths.src,
localIdentName: isDevelopment
? '[path]__[name]__[local]__[hash:base64:5]'
: '[hash:base64:5]'
localIdentName: isDevelopment ? '[path]__[name]__[local]__[hash]' : '[hash]',
localIdentHashDigestLength: 5
}
}
},
9 changes: 5 additions & 4 deletions src/webpack/config/define.js
Original file line number Diff line number Diff line change
@@ -6,10 +6,11 @@ module.exports = (options = {}) => {
return {
plugins: [
new webpack.DefinePlugin({
'process.browser': JSON.stringify(isClient),
'process.env.STORYBOOK': JSON.stringify(isStorybook),
'process.env.SENTRY_CLIENT_DSN': JSON.stringify(process.env.SENTRY_CLIENT_DSN),
'process.env.PRODUCT': JSON.stringify(process.env.PRODUCT)
'process.env.ENV': JSON.stringify(process.env.ENV),
'process.env.API_HOST_SSR': JSON.stringify(process.env.API_HOST_SSR),
'process.browser': isClient,
'process.env.STORYBOOK': isStorybook || JSON.stringify(process.env.STORYBOOK),
'process.env.SENTRY_CLIENT_DSN': JSON.stringify(process.env.SENTRY_CLIENT_DSN)
})
]
};
18 changes: 2 additions & 16 deletions src/webpack/config/javascript.js
Original file line number Diff line number Diff line change
@@ -2,13 +2,6 @@ module.exports = (options) => {
const { include = [], cache = false } = options;
const test = /\.jsx?$/;

const sourceMapRule = {
test,
enforce: 'pre',
include: () => true, // process source-maps across all folders - works when linked
loader: 'source-map-loader'
};

const babelRule = {
test,
include,
@@ -18,17 +11,10 @@ module.exports = (options) => {
}
};

const stats = {
warningsFilter: [/Failed to parse source map/]
};

return {
module: {
rules: [babelRule, sourceMapRule]
rules: [babelRule]
},
stats,
devServer: {
stats
}
ignoreWarnings: [/Failed to parse source map/]
};
};
28 changes: 7 additions & 21 deletions src/webpack/config/stats.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
const path = require('path');
const StatsPlugin = require('stats-webpack-plugin');
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
const { BundleStatsWebpackPlugin } = require('bundle-stats-webpack-plugin');

const { paths } = require('../defaults');

const ARTIFACTS_REL_DIR = path.relative(paths.output.path, paths.artifacts.path);

const STATS = {
context: paths.src,
excludeAssets: [/artifacts/],
@@ -19,21 +15,11 @@ const STATS = {
source: false
};

module.exports = () => ({
plugins: [
new BundleAnalyzerPlugin({
analyzerMode: 'static',
openAnalyzer: false,
reportFilename: path.join(paths.artifacts.path, 'bundle-analysis.html'),
generateStatsFile: false,
statsOptions: STATS
}),

new StatsPlugin(path.join(ARTIFACTS_REL_DIR, 'webpack-stats.json'), STATS),
module.exports = ({ outputDir, isClient = true }) => {
const artifactsRelDir = path.relative(outputDir, paths.artifacts.path);
const suffix = isClient ? 'client' : 'render';

new BundleStatsWebpackPlugin({
outDir: ARTIFACTS_REL_DIR,
stats: STATS
})
]
});
return {
plugins: [new StatsPlugin(path.join(artifactsRelDir, `webpack-stats--${suffix}.json`), STATS)]
};
};
4 changes: 3 additions & 1 deletion src/webpack/config/stylus.js
Original file line number Diff line number Diff line change
@@ -7,7 +7,9 @@ module.exports = (options = {}) => {
enforce: 'pre',
loader: 'stylus-loader',
options: {
paths: include
stylusOptions: {
paths: include
}
}
};

15 changes: 11 additions & 4 deletions src/webpack/index.js
Original file line number Diff line number Diff line change
@@ -7,7 +7,6 @@ const { spawn } = require('child_process');
const { ENV } = require('../constants');
const { debug } = require('../utils');
const { context, config } = require('./defaults');
const { renderConfig, clientConfig } = require('./webpack.config.prd');

const printStats = (mode, stats) => {
process.stdout.write('\n');
@@ -38,22 +37,25 @@ const start = () => {
};

const compileWebpackConfig = (webpackConfig) =>
new Promise((resolve, reject) =>
new Promise((resolve, reject) => {
webpack(webpackConfig).run((err, stats) => {
if (err) {
reject(err);
}

resolve(stats);
})
);
});
});

const buildClient = () => {
const log = debug('build:client');
log('PRD:', config.productName);
log('ENV:', ENV);
log('API:', config.queryApiUrl);

// eslint-disable-next-line global-require
const { clientConfig } = require('./webpack.config.prd');

return compileWebpackConfig(clientConfig).then((stats) => printStats('Client', stats));
};

@@ -63,6 +65,11 @@ const buildRender = () => {
log('ENV:', ENV);
log('API:', config.queryApiUrl);

process.env.BABEL_ENV = 'render';

// eslint-disable-next-line global-require
const { renderConfig } = require('./webpack.config.prd');

return compileWebpackConfig(renderConfig).then((renderStats) =>
printStats('Render', renderStats)
);
55 changes: 55 additions & 0 deletions src/webpack/presets/css-client-delivery.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
/**
* Deliver CSS assets
*
* style-loader or mini-css-extract
*/

const { merge } = require('lodash');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = (options = {}) => {
const {
isDevelopment = false,

rule = {},
miniCssExtractLoaderOptions = {},
miniCssExtractPluginOptions = {}
} = options;

const defaultMiniCssExtractLoaderOptions = {
esModule: false
};

const defaultMiniCssExtractPluginOptions = {
filename: isDevelopment ? '[name].css' : '[path][name].[contenthash].css'
};

return {
module: {
rules: [
{
test: /\.(css|sass|scss|less|styl)$/,
enforce: 'post', // run after the processing rule (see css.js)
...rule,
use: [
isDevelopment
? 'style-loader'
: {
loader: MiniCssExtractPlugin.loader,
options: merge(defaultMiniCssExtractLoaderOptions, miniCssExtractLoaderOptions)
}
]
}
]
},
plugins: [
...(!isDevelopment
? [
new MiniCssExtractPlugin(
merge(defaultMiniCssExtractPluginOptions, miniCssExtractPluginOptions)
)
]
: [])
]
};
};
74 changes: 74 additions & 0 deletions src/webpack/presets/css.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
/**
* Process CSS files
* 1. postcss-loader
* 2. css-loader
*/

const { merge } = require('lodash');
const autoprefixer = require('autoprefixer');
const stylelint = require('stylelint');
const cssnano = require('cssnano');
const postcssReporter = require('postcss-reporter');

module.exports = (options = {}) => {
const {
isDevelopment = false,
isNode = false,
lint = false,

rule = {},
cssLoaderOptions = {},
postcssLoaderOptions = {}
} = options;

const defaultCssLoaderOptions = {
esModule: false,
modules: {
mode: 'local',
exportOnlyLocals: isNode,
localIdentName: isDevelopment ? '[path]__[name]__[local]' : '[hash]',
localIdentHashDigestLength: 5
}
};

const defaultPostcssLoaderOptions = {
postcssOptions: {
plugins: []
.concat(lint && stylelint())
.concat(autoprefixer())
.concat(
!isDevelopment &&
cssnano({
preset: [
'default',
{
normalizeUrl: false // Avoid removing the relative (`./`) notation, required for webpack
}
]
})
)
.concat(postcssReporter({ clearAllMessages: true }))
}
};

return {
module: {
rules: [
{
test: /\.(css|sass|scss|less|styl)$/,
...rule,
use: [
{
loader: require.resolve('css-loader'),
options: merge(defaultCssLoaderOptions, cssLoaderOptions)
},
{
loader: require.resolve('postcss-loader'),
options: merge(defaultPostcssLoaderOptions, postcssLoaderOptions)
}
]
}
]
}
};
};
32 changes: 32 additions & 0 deletions src/webpack/presets/javascript.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
const { merge } = require('lodash');

/**
* @param {object} options
* @param {boolean} [options.isDevelopment]
* @param {object} [options.rule]
* @param {object} [options.babelLoaderOptions]
* @returns {object}
*/
module.exports = function createJavascriptConfig(options = {}) {
const { isDevelopment = false, rule = {}, babelLoaderOptions = {} } = options;

const defaultBabelOptions = {
cacheDirectory: isDevelopment
};

return {
module: {
rules: [
merge(
{
test: /\.(js|ts)x?$/,
loader: require.resolve('babel-loader'),
options: merge(defaultBabelOptions, babelLoaderOptions)
},
rule
)
]
},
ignoreWarnings: [/Failed to parse source map/]
};
};
5 changes: 5 additions & 0 deletions src/webpack/tools.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
const SpeedMeasurePlugin = require('speed-measure-webpack-plugin');

module.exports.speedMeasurePlugin = new SpeedMeasurePlugin({
disable: !process.env.WEBPACK_SPEED_MEASURE
});
126 changes: 68 additions & 58 deletions src/webpack/webpack.config.dev.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
const webpack = require('webpack');
const { get } = require('lodash');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin');

const { getEnvMiddleware } = require('../utils');
const constants = require('../constants');
const mergeConfigs = require('./mergeConfigs');
const {
createJavascriptConfig,
createResolveConfig,
createCssConfig,
createStylusConfig,
createFileConfig,
createSvgConfig,
createDefineConfig
} = require('./config');
const createCssConfig = require('./presets/css');
const createCssDeliveryConfig = require('./presets/css-client-delivery');
const createJavascriptConfig = require('./presets/javascript');
const settings = require('./defaults');
const { speedMeasurePlugin } = require('./tools');

const env = {
CLIENT: true,
@@ -28,19 +29,20 @@ const { paths } = settings;
const devConfig = {
mode: 'development',
context: paths.src,
devtool: 'cheap-module-eval-source-mapp',
entry: {
init: paths.entry.init,
main: paths.entry.main
},
target: 'web',
devtool: 'cheap-module-source-map',
output: {
path: paths.output.path,
filename: paths.output.filenameDev,
chunkFilename: paths.output.filenameDev,
publicPath: paths.output.publicPath
},
plugins: [
new webpack.NamedModulesPlugin(),
new ReactRefreshWebpackPlugin(),
new HtmlWebpackPlugin({
template: paths.public.template,
head: get(settings, 'config.additional.global.head')
@@ -51,70 +53,78 @@ const devConfig = {
from: paths.public.root
}
]
}),
new webpack.HotModuleReplacementPlugin()
})
],
devServer: {
port: constants.DEV_PORT,
contentBase: paths.output.path,
publicPath: paths.output.publicPath,
hot: true,
watchContentBase: true,
disableHostCheck: true,
watchOptions: {
ignored: /node_modules/
},
historyApiFallback: true,
before: (app) => {
app.get('/env.js', getEnvMiddleware());
allowedHosts: 'all',
setupMiddlewares: (middlewares, devServer) => {
devServer.app.get('/env.js', getEnvMiddleware());
return middlewares;
},
client: {
logging: 'info',
progress: false,
overlay: {
errors: true,
warnings: false
}
},
stats: {
assets: false,
chunks: false,
entrypoints: false,
children: false,
modules: false
static: {
directory: paths.public.root,
watch: true
}
},
optimization: {
splitChunks: false
runtimeChunk: 'single'
}
};

module.exports = mergeConfigs(
[
devConfig,
module.exports = speedMeasurePlugin.wrap(
mergeConfigs(
[
devConfig,

createResolveConfig(),
createJavascriptConfig(
{
include: paths.src,
cache: true
},
env
),
createCssConfig(
{
include: paths.src,
lint: true
},
env
),
createStylusConfig({
include: paths.src,
root: paths.root
}),
createFileConfig(
{
createResolveConfig(),
createJavascriptConfig({
isDevelopment: true,
rule: {
include: paths.src
}
}),

// createStylusConfig({
// include: paths.src,
// root: paths.root
// }),
createCssConfig({
isDevelopment: true,
lint: true,
rule: {
include: paths.src
}
}),
createCssDeliveryConfig({
isDevelopment: true,
rule: {
include: paths.src
}
}),

createFileConfig(
{
context: paths.src
},
env
),
createSvgConfig({
context: paths.src
},
env
),
createSvgConfig({
context: paths.src
}),
createDefineConfig({ isClient: true })
],
settings,
env
}),
createDefineConfig({ isClient: true })
],
settings,
env
)
);
127 changes: 57 additions & 70 deletions src/webpack/webpack.config.prd.js
Original file line number Diff line number Diff line change
@@ -8,18 +8,18 @@ const constants = require('../constants');
const mergeConfigs = require('./mergeConfigs');
const settings = require('./defaults');
const {
createJavascriptConfig,
createResolveConfig,
createFileConfig,
createCssConfig,
createStylusConfig,
createCommonChunks,
createServiceWorkerConfig,
createBuildInfo,
createStatsConfig,
createSvgConfig,
createDefineConfig
} = require('./config');
const createCssConfig = require('./presets/css');
const createCssClientDeliveryConfig = require('./presets/css-client-delivery');
const createJavascriptConfig = require('./presets/javascript');

const env = {
...constants,
@@ -39,17 +39,23 @@ const SERVER_ENV = {

const { context, paths } = settings;

const productionConfig = {
bail: true,
mode: 'production',
context,
devtool: 'source-map',
plugins: [new CleanWebpackPlugin()]
};

const clientConfig = mergeConfigs(
[
productionConfig,
{
bail: true,
mode: 'production',
context,
devtool: 'source-map',
entry: {
init: paths.entry.init,
main: paths.entry.main
},
target: 'web',
output: {
path: paths.output.path,
filename: paths.output.filename,
@@ -58,63 +64,52 @@ const clientConfig = mergeConfigs(
hashDigestLength: 8
},
plugins: [
new CleanWebpackPlugin(),
new webpack.DefinePlugin({
__CLIENT__: JSON.stringify(true),
__SERVER__: JSON.stringify(false)
}),
new webpack.optimize.ModuleConcatenationPlugin(),
new webpack.HashedModuleIdsPlugin(),
new CopyWebpackPlugin({
patterns: [
{
from: paths.public.root
}
]
}),
new AssetsPlugin({
...paths.assets
})
new AssetsPlugin({ ...paths.assets })
],
optimization: {
chunkIds: 'named',
minimizer: [
new TerserPlugin({
parallel: true,
sourceMap: true
})
]
minimizer: [new TerserPlugin({ parallel: 4 })],
runtimeChunk: 'single'
}
},
createResolveConfig(),
createJavascriptConfig(
{
createJavascriptConfig({
rule: {
include: paths.src
}
}),

// createStylusConfig({ include: paths.src }),
createCssConfig({
rule: {
include: paths.src
}
}),
createCssClientDeliveryConfig({
rule: {
include: paths.src
},
CLIENT_ENV
),
createCssConfig(
{
include: paths.src,
minimize: true,
extractChunks: true,
miniCssExtractPluginOptions: {
filename: paths.output.cssFilename
},
CLIENT_ENV
),
createStylusConfig({
include: paths.src
}
}),

createFileConfig({ context: paths.src }, CLIENT_ENV),
createSvgConfig({ context: paths.src }),
createCommonChunks(),
createBuildInfo({
output: paths.output.buildInfo
}),
createStatsConfig(),
createServiceWorkerConfig({
swDest: paths.output.swDest
}),
createBuildInfo({ output: paths.output.buildInfo }),
createStatsConfig({ outputDir: paths.output.path, isClient: true }),
createServiceWorkerConfig({ swDest: paths.output.swDest }),
createDefineConfig({ isClient: true })
],
settings,
@@ -123,11 +118,9 @@ const clientConfig = mergeConfigs(

const renderConfig = mergeConfigs(
[
productionConfig,
{
bail: true,
mode: 'production',
context,
target: 'node',
externalsPresets: { node: true },
entry: {
render: paths.entry.render
},
@@ -137,8 +130,11 @@ const renderConfig = mergeConfigs(
libraryTarget: 'commonjs2',
publicPath: paths.output.publicPath
},
target: 'node',
resolve: {
mainFields: ['main', 'module']
},
plugins: [
new CleanWebpackPlugin(),
new webpack.DefinePlugin({
__CLIENT__: JSON.stringify(false),
__SERVER__: JSON.stringify(true)
@@ -147,38 +143,29 @@ const renderConfig = mergeConfigs(
maxChunks: 1
})
],
devtool: 'source-map',
optimization: {
minimize: false
},
performance: {
hints: false
}
},
createResolveConfig(),
createJavascriptConfig(
{
createJavascriptConfig({
rule: {
include: paths.src
},
SERVER_ENV
),
createCssConfig(
{
include: paths.src,
node: true
},
SERVER_ENV
),
createStylusConfig({
include: paths.src
}
}),
createFileConfig(
{
context: paths.src,
emitFile: false
},
SERVER_ENV
),
createSvgConfig({
context: paths.src
createCssConfig({
isNode: true,
rule: {
include: paths.src
}
}),
// createStylusConfig({ include: paths.src }),
createFileConfig({ context: paths.src, emitFile: false }, SERVER_ENV),
createSvgConfig({ context: paths.src }),
createStatsConfig({ outputDir: paths.render.path, isClient: false }),
createDefineConfig({ isClient: false })
],
settings,
13,949 changes: 5,140 additions & 8,809 deletions yarn.lock

Large diffs are not rendered by default.