From d67d1ff3afe5765ef1442f523a474a767e6a35e2 Mon Sep 17 00:00:00 2001 From: Efremov Evgenii Date: Thu, 30 Jun 2022 18:36:26 +0300 Subject: [PATCH 1/7] startup project --- Gemfile | 4 ++-- Gemfile.lock | 24 ++++++++++++------------ 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/Gemfile b/Gemfile index bf57e9a..d5513bc 100644 --- a/Gemfile +++ b/Gemfile @@ -16,7 +16,7 @@ end gem "actionpack-action_caching", "~> 1.2" gem "active_record_union", "~> 1.3" gem "acts-as-taggable-on", "~> 5.0" -gem "acts_as_follower", github: "thepracticaldev/acts_as_follower", branch: "master" +gem "acts_as_follower", github: "forem/acts_as_follower", branch: "master" gem "addressable", "~> 2.5", ">= 2.5.2" gem "administrate", "~> 0.11" gem "ahoy_email", "~> 0.5" @@ -122,7 +122,7 @@ group :development, :test do gem "derailed", "~> 0.1" gem "erb_lint", "~> 0.0", require: false gem "faker", git: "https://github.com/stympy/faker.git", branch: "master" - gem "fix-db-schema-conflicts", github: "thepracticaldev/fix-db-schema-conflicts", branch: "master" + gem "fix-db-schema-conflicts", github: "jakeonrails/fix-db-schema-conflicts", branch: "master" gem "memory_profiler", "~> 0.9" gem "parallel_tests", "~> 2.27" gem "pry-byebug", "~> 3.7" diff --git a/Gemfile.lock b/Gemfile.lock index 331bf9c..574c972 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,26 +1,26 @@ GIT - remote: https://github.com/stympy/faker.git - revision: 9910aa58d92c018abab25d491191576fcc1a7707 + remote: https://github.com/forem/acts_as_follower.git + revision: 06393d3693a1a3d4b390aec4976c8b8f3a81cf01 branch: master specs: - faker (1.9.1) - i18n (>= 0.7) + acts_as_follower (0.2.1) + activerecord (>= 4.0) GIT - remote: https://github.com/thepracticaldev/acts_as_follower.git - revision: 288690cd99bc470eaee493fce5bfa9fe23157692 + remote: https://github.com/jakeonrails/fix-db-schema-conflicts.git + revision: 1e94f518503f1d1addd6ed052454efcbec0b3c6a branch: master specs: - acts_as_follower (0.2.1) - activerecord (>= 4.0) + fix-db-schema-conflicts (3.1.0) + rubocop (>= 0.38.0) GIT - remote: https://github.com/thepracticaldev/fix-db-schema-conflicts.git - revision: 4172392392e1a8d907f7ab673cb5ddd9a4a31940 + remote: https://github.com/stympy/faker.git + revision: 9910aa58d92c018abab25d491191576fcc1a7707 branch: master specs: - fix-db-schema-conflicts (3.0.2) - rubocop (>= 0.38.0) + faker (1.9.1) + i18n (>= 0.7) GEM remote: https://rubygems.org/ From cfcb27802ecbcc5f85b4b6aed9f274c021dd0ab2 Mon Sep 17 00:00:00 2001 From: Efremov Evgenii Date: Thu, 30 Jun 2022 19:06:34 +0300 Subject: [PATCH 2/7] add webpack-bundle-analyzer --- .gitignore | 3 +- config/environments/development.rb | 2 +- config/webpack/environment.js | 6 ++ homeBudget.json | 7 ++ package.json | 3 +- yarn.lock | 117 ++++++++++++++++++++++++++++- 6 files changed, 134 insertions(+), 4 deletions(-) create mode 100644 homeBudget.json diff --git a/.gitignore b/.gitignore index df2840a..7c586ea 100644 --- a/.gitignore +++ b/.gitignore @@ -44,6 +44,7 @@ config/database.yml # Ignore storybook static site generation storybook-static/ yarn-error.log +sitespeed-result # Ignore package-lock.json because we use yarn package-lock.json @@ -52,4 +53,4 @@ package-lock.json .idea/ #sitemap -/public/sitemap.xml.gz \ No newline at end of file +/public/sitemap.xml.gz diff --git a/config/environments/development.rb b/config/environments/development.rb index ad3b97c..ff56e94 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -6,7 +6,7 @@ def yarn_integrity_enabled? Rails.application.configure do # Verifies that versions and hashed value of the package contents in the project's package.json - config.webpacker.check_yarn_integrity = yarn_integrity_enabled? + config.webpacker.check_yarn_integrity = false # Settings specified here will take precedence over those in config/application.rb. diff --git a/config/webpack/environment.js b/config/webpack/environment.js index da47cd7..ec46dfd 100644 --- a/config/webpack/environment.js +++ b/config/webpack/environment.js @@ -11,6 +11,7 @@ const { environment } = require('@rails/webpacker') const webpack = require('webpack') +const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer') environment.plugins.append( 'CommonsChunkVendor', @@ -31,4 +32,9 @@ environment.plugins.append( }) ) +environment.plugins.append( + 'BundleAnalyzer', + new BundleAnalyzerPlugin() +) + module.exports = environment diff --git a/homeBudget.json b/homeBudget.json new file mode 100644 index 0000000..b9cd551 --- /dev/null +++ b/homeBudget.json @@ -0,0 +1,7 @@ +{ + "budget": { + "transferSize": { + "javascript": 460000 + } + } +} diff --git a/package.json b/package.json index 5532679..4b540db 100644 --- a/package.json +++ b/package.json @@ -99,7 +99,8 @@ "prop-types": "^15.7.2", "pusher-js": "^4.4.0", "twilio-video": "^1.15.2", - "web-share-wrapper": "^0.2.1" + "web-share-wrapper": "^0.2.1", + "webpack-bundle-analyzer": "^4.5.0" }, "jest": { "setupFiles": [ diff --git a/yarn.lock b/yarn.lock index 98288bd..e7d99e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -219,6 +219,11 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.2.tgz#63985d3d8b02530e0869962f4da09142ee8e200e" integrity sha512-n/VQ4mbfr81aqkx/XmVicOLjviMuy02eenSdJY33SVA7S2J42EU0P1H0mOogfYedb3wXA0d/LVtBrgTSm04WEA== +"@polka/url@^1.0.0-next.20": + version "1.0.0-next.21" + resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" + integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== + "@rails/webpacker@^3.5.5": version "3.5.5" resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-3.5.5.tgz#8911c66bcefc8bc6b91270e92f0d39e3c2d43116" @@ -665,6 +670,11 @@ acorn-walk@^6.0.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.1.1.tgz#d363b66f5fac5f018ff9c3a1e7b6f8e310cc3913" integrity sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw== +acorn-walk@^8.0.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + acorn@^4.0.3: version "4.0.13" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" @@ -680,6 +690,11 @@ acorn@^6.0.1, acorn@^6.0.4, acorn@^6.0.7: resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.1.0.tgz#b0a3be31752c97a0f7013c5f4903b71a05db6818" integrity sha512-MW/FjM+IvU9CgBzjO3UIPCE2pyEwUsoFl+VGdczOPEdxfGFjuKny/gN54mOuX7Qxmb9Rg9MCn2oKiSUeW+pjrw== +acorn@^8.0.4: + version "8.7.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30" + integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A== + address@1.0.3, address@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" @@ -792,6 +807,13 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + any-observable@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/any-observable/-/any-observable-0.3.0.tgz#af933475e5806a67d0d7df090dd5e8bef65d119b" @@ -2638,6 +2660,14 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.3.2, chalk@^2.4 escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + change-emitter@^0.1.2: version "0.1.6" resolved "https://registry.yarnpkg.com/change-emitter/-/change-emitter-0.1.6.tgz#e8b2fe3d7f1ab7d69a32199aff91ea6931409515" @@ -2876,12 +2906,19 @@ color-convert@^1.3.0, color-convert@^1.8.2, color-convert@^1.9.0, color-convert@ dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== @@ -2964,6 +3001,11 @@ commander@^2.11.0, commander@^2.14.1, commander@^2.15.0, commander@^2.19.0, comm resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + commander@~2.13.0: version "2.13.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" @@ -3777,6 +3819,11 @@ duplexer@^0.1.1: resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + duplexify@^3.4.2, duplexify@^3.6.0: version "3.6.1" resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.6.1.tgz#b1a7a29c4abfd639585efaecce80d666b1e34125" @@ -5115,6 +5162,13 @@ gzip-size@3.0.0: dependencies: duplexer "^0.1.1" +gzip-size@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-6.0.0.tgz#065367fd50c239c0671cbcbad5be3e2eeb10e462" + integrity sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q== + dependencies: + duplexer "^0.1.2" + handle-thing@^1.2.5: version "1.2.5" resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" @@ -5166,6 +5220,11 @@ has-flag@^3.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + has-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" @@ -7065,6 +7124,11 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" integrity sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg== +lodash@^4.17.20: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + log-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" @@ -7474,6 +7538,11 @@ move-concurrently@^1.0.1: rimraf "^2.5.4" run-queue "^1.0.3" +mrmime@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" + integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -7948,6 +8017,11 @@ onetime@^2.0.0: dependencies: mimic-fn "^1.0.0" +opener@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" + integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== + opn@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/opn/-/opn-5.2.0.tgz#71fdf934d6827d676cecbea1531f95d354641225" @@ -10401,6 +10475,15 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" +sirv@^1.0.7: + version "1.0.19" + resolved "https://registry.yarnpkg.com/sirv/-/sirv-1.0.19.tgz#1d73979b38c7fe91fcba49c85280daa9c2363b49" + integrity sha512-JuLThK3TnZG1TAKDwNIqNq6QA2afLOCcm+iE8D1Kj3GA40pSPsxQjjJl0J8X3tsR7T+CP1GavpzLwYkgVLWrZQ== + dependencies: + "@polka/url" "^1.0.0-next.20" + mrmime "^1.0.0" + totalist "^1.0.0" + sisteransi@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-0.1.1.tgz#5431447d5f7d1675aac667ccd0b865a4994cb3ce" @@ -10902,6 +10985,13 @@ supports-color@^5.1.0, supports-color@^5.3.0, supports-color@^5.4.0, supports-co dependencies: has-flag "^3.0.0" +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + svg-tag-names@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/svg-tag-names/-/svg-tag-names-1.1.1.tgz#9641b29ef71025ee094c7043f7cdde7d99fbd50a" @@ -11097,6 +11187,11 @@ toposort@^2.0.2: resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" integrity sha1-riF2gXXRVZ1IvvNUILL0li8JwzA= +totalist@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df" + integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g== + tough-cookie@>=2.3.3, tough-cookie@^2.3.4, tough-cookie@^2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" @@ -11547,6 +11642,21 @@ webidl-conversions@^4.0.2: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== +webpack-bundle-analyzer@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.5.0.tgz#1b0eea2947e73528754a6f9af3e91b2b6e0f79d5" + integrity sha512-GUMZlM3SKwS8Z+CKeIFx7CVoHn3dXFcUAjT/dcZQQmfSZGvitPfMob2ipjai7ovFFqPvTqkEZ/leL4O0YOdAYQ== + dependencies: + acorn "^8.0.4" + acorn-walk "^8.0.0" + chalk "^4.1.0" + commander "^7.2.0" + gzip-size "^6.0.0" + lodash "^4.17.20" + opener "^1.5.2" + sirv "^1.0.7" + ws "^7.3.1" + webpack-dev-middleware@1.12.2, webpack-dev-middleware@^1.12.2: version "1.12.2" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" @@ -11814,6 +11924,11 @@ ws@^6.1.2: dependencies: async-limiter "~1.0.0" +ws@^7.3.1: + version "7.5.8" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.8.tgz#ac2729881ab9e7cbaf8787fe3469a48c5c7f636a" + integrity sha512-ri1Id1WinAX5Jqn9HejiGb8crfRio0Qgu8+MtL36rlTA6RLsMdWt1Az/19A2Qij6uSHUMphEFaTKa4WG+UNHNw== + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" From 536f48551d0f68c703abe2e7bad695032e66fbee Mon Sep 17 00:00:00 2001 From: Efremov Evgenii Date: Thu, 30 Jun 2022 19:06:44 +0300 Subject: [PATCH 3/7] add webpack-bundle-analyzer --- config/webpack/environment.js | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/config/webpack/environment.js b/config/webpack/environment.js index ec46dfd..4d860d3 100644 --- a/config/webpack/environment.js +++ b/config/webpack/environment.js @@ -8,33 +8,29 @@ // module.exports = environment; - -const { environment } = require('@rails/webpacker') -const webpack = require('webpack') -const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer') +const { environment } = require('@rails/webpacker'); +const webpack = require('webpack'); +const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); environment.plugins.append( 'CommonsChunkVendor', new webpack.optimize.CommonsChunkPlugin({ name: 'vendor', - minChunks: (module) => { + minChunks: module => { // this assumes your vendor imports exist in the node_modules directory - return module.context && module.context.indexOf('node_modules') !== -1 - } - }) -) + return module.context && module.context.indexOf('node_modules') !== -1; + }, + }), +); environment.plugins.append( 'CommonsChunkManifest', new webpack.optimize.CommonsChunkPlugin({ name: 'manifest', - minChunks: Infinity - }) -) + minChunks: Infinity, + }), +); -environment.plugins.append( - 'BundleAnalyzer', - new BundleAnalyzerPlugin() -) +environment.plugins.append('BundleAnalyzer', new BundleAnalyzerPlugin()); -module.exports = environment +module.exports = environment; From e76ac20a8f068b04c1ef0ff8dcc6088471c19582 Mon Sep 17 00:00:00 2001 From: Efremov Evgenii Date: Thu, 30 Jun 2022 20:18:26 +0300 Subject: [PATCH 4/7] optimize vendor --- .gitignore | 2 +- app/javascript/packs/proCharts.js | 2 +- config/webpack/environment.js | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 7c586ea..5edd901 100644 --- a/.gitignore +++ b/.gitignore @@ -27,7 +27,7 @@ coverage # Ignore node_modules node_modules/ - +screenshots # Generated js bundles /app/assets/javascripts/generated/* latest.dump diff --git a/app/javascript/packs/proCharts.js b/app/javascript/packs/proCharts.js index 154ef68..d3731c3 100644 --- a/app/javascript/packs/proCharts.js +++ b/app/javascript/packs/proCharts.js @@ -1,4 +1,4 @@ -import Chart from 'chart.js'; +import Chart from 'chart.js/dist/Chart.js' const reactionsCanvas = document.getElementById('reactionsChart'); const commentsCanvas = document.getElementById('commentsChart'); diff --git a/config/webpack/environment.js b/config/webpack/environment.js index 4d860d3..9789b32 100644 --- a/config/webpack/environment.js +++ b/config/webpack/environment.js @@ -18,7 +18,12 @@ environment.plugins.append( name: 'vendor', minChunks: module => { // this assumes your vendor imports exist in the node_modules directory - return module.context && module.context.indexOf('node_modules') !== -1; + return ( + module.context && + module.context.indexOf('node_modules') !== -1 && + module.context.indexOf('moment') === -1 && + module.context.indexOf('chart.js') === -1 + ); }, }), ); From 0c82a3bb77bc2c87f09a043076735ccde0032850 Mon Sep 17 00:00:00 2001 From: Efremov Evgenii Date: Thu, 30 Jun 2022 20:18:29 +0300 Subject: [PATCH 5/7] optimize vendor --- app/javascript/packs/proCharts.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/packs/proCharts.js b/app/javascript/packs/proCharts.js index d3731c3..998c2f6 100644 --- a/app/javascript/packs/proCharts.js +++ b/app/javascript/packs/proCharts.js @@ -1,4 +1,4 @@ -import Chart from 'chart.js/dist/Chart.js' +import Chart from 'chart.js/dist/Chart.js'; const reactionsCanvas = document.getElementById('reactionsChart'); const commentsCanvas = document.getElementById('commentsChart'); From 812b029bff9862830639d3aa422a6ad44113eddc Mon Sep 17 00:00:00 2001 From: Efremov Evgenii Date: Sun, 3 Jul 2022 15:28:43 +0300 Subject: [PATCH 6/7] revert standalone chart.js --- app/javascript/packs/application.js | 10 ++++++++++ app/javascript/packs/proCharts.js | 2 +- config/environments/development.rb | 2 +- package.json | 4 ++-- yarn.lock | 24 ++++++++++++++++++------ 5 files changed, 32 insertions(+), 10 deletions(-) create mode 100644 app/javascript/packs/application.js diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js new file mode 100644 index 0000000..75d750f --- /dev/null +++ b/app/javascript/packs/application.js @@ -0,0 +1,10 @@ +/* eslint no-console:0 */ +// This file is automatically compiled by Webpack, along with any other files +// present in this directory. You're encouraged to place your actual application logic in +// a relevant structure within app/javascript and only use these pack files to reference +// that code so it'll be compiled. +// +// To reference this file, add <%= javascript_pack_tag 'application' %> to the appropriate +// layout file, like app/views/layouts/application.html.erb + +console.log('Hello World from Webpacker'); diff --git a/app/javascript/packs/proCharts.js b/app/javascript/packs/proCharts.js index 998c2f6..154ef68 100644 --- a/app/javascript/packs/proCharts.js +++ b/app/javascript/packs/proCharts.js @@ -1,4 +1,4 @@ -import Chart from 'chart.js/dist/Chart.js'; +import Chart from 'chart.js'; const reactionsCanvas = document.getElementById('reactionsChart'); const commentsCanvas = document.getElementById('commentsChart'); diff --git a/config/environments/development.rb b/config/environments/development.rb index ff56e94..ad3b97c 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -6,7 +6,7 @@ def yarn_integrity_enabled? Rails.application.configure do # Verifies that versions and hashed value of the package contents in the project's package.json - config.webpacker.check_yarn_integrity = false + config.webpacker.check_yarn_integrity = yarn_integrity_enabled? # Settings specified here will take precedence over those in config/application.rb. diff --git a/package.json b/package.json index 4b540db..08b9609 100644 --- a/package.json +++ b/package.json @@ -82,10 +82,10 @@ "preact-render-spy": "^1.3.0", "preact-render-to-json": "^3.6.6", "prettier": "^1.16.4", - "webpack-dev-server": "^2.11.3" + "webpack-dev-server": "2.11.2" }, "dependencies": { - "@rails/webpacker": "^3.5.5", + "@rails/webpacker": "3.5", "babel-plugin-transform-react-jsx": "^6.24.1", "babel-preset-preact": "^1.1.0", "chart.js": "^2.7.3", diff --git a/yarn.lock b/yarn.lock index e7d99e2..35908d1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -224,7 +224,7 @@ resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.21.tgz#5de5a2385a35309427f6011992b544514d559aa1" integrity sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g== -"@rails/webpacker@^3.5.5": +"@rails/webpacker@3.5": version "3.5.5" resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-3.5.5.tgz#8911c66bcefc8bc6b91270e92f0d39e3c2d43116" integrity sha512-R9kglLb/R9mMqf2BW91XJHYc0q00qAO67vfrbV52ifTSywPOixEka/7oU3cb6671u1ajd74kuGAsCSnBtdVHJg== @@ -10543,6 +10543,18 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" +sockjs-client@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" + integrity sha512-hkDiI0wOmGmoUG3TSIrbDt8AhyzhePuNT3nogc5+c0amyUHu091y+jRK2h/e36olKRG+tSbhlQYHWqdsuW0CtQ== + dependencies: + debug "^2.6.6" + eventsource "0.1.6" + faye-websocket "~0.11.0" + inherits "^2.0.1" + json3 "^3.3.2" + url-parse "^1.1.8" + sockjs-client@1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.5.tgz#1bb7c0f7222c40f42adf14f4442cbd1269771a83" @@ -11668,10 +11680,10 @@ webpack-dev-middleware@1.12.2, webpack-dev-middleware@^1.12.2: range-parser "^1.0.3" time-stamp "^2.0.0" -webpack-dev-server@^2.11.3: - version "2.11.3" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.11.3.tgz#3fd48a402164a6569d94d3d17f131432631b4873" - integrity sha512-Qz22YEFhWx+M2vvJ+rQppRv39JA0h5NNbOOdODApdX6iZ52Diz7vTPXjF7kJlfn+Uc24Qr48I3SZ9yncQwRycg== +webpack-dev-server@2.11.2: + version "2.11.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.11.2.tgz#1f4f4c78bf1895378f376815910812daf79a216f" + integrity sha512-zrPoX97bx47vZiAXfDrkw8pe9QjJ+lunQl3dypojyWwWr1M5I2h0VSrMPfTjopHQPRNn+NqfjcMmhoLcUJe2gA== dependencies: ansi-html "0.0.7" array-includes "^3.0.3" @@ -11694,7 +11706,7 @@ webpack-dev-server@^2.11.3: selfsigned "^1.9.1" serve-index "^1.7.2" sockjs "0.3.19" - sockjs-client "1.1.5" + sockjs-client "1.1.4" spdy "^3.4.1" strip-ansi "^3.0.0" supports-color "^5.1.0" From 117c654f5395ae85ba5c258ceb3f95f9f5b7fb47 Mon Sep 17 00:00:00 2001 From: Efremov Evgenii Date: Sun, 3 Jul 2022 15:43:46 +0300 Subject: [PATCH 7/7] add workflow --- .github/workflows/main.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..e359b61 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,15 @@ +name: CI + +on: [push] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: checkout code + uses: actions/checkout@v3 + - name: run sitespeedio test + uses: docker://sitespeedio/sitespeed.io:9.8.1-action + with: + args: https://d596-18-135-4-161.eu.ngrok.io -n 1 --budget.configPath ./homeBudget.json