diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 449f780c2..480179900 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -73,10 +73,9 @@ jobs:
fail-on-cache-miss: false
path: |
public/assets
- public/packs-test
tmp/cache/webpacker
- key: ${{ runner.os }}-compiled-assets-v2-${{ hashFiles('app/assets/**', 'app/javascript/**', 'config/webpack/**', 'config/webpacker.yml', '**/package.json', '**/yarn.lock', '**/babel.config.js') }}
- restore-keys: ${{ runner.os }}-compiled-assets-v2-
+ key: ${{ runner.os }}-compiled-assets-v3-${{ hashFiles('app/assets/**', 'app/javascript/**', 'config/webpack/**', 'config/webpacker.yml', '**/package.json', '**/yarn.lock', '**/babel.config.js') }}
+ restore-keys: ${{ runner.os }}-compiled-assets-v3-
- name: setup ruby
uses: ruby/setup-ruby@v1
with:
@@ -163,10 +162,9 @@ jobs:
fail-on-cache-miss: true
path: |
public/assets
- public/packs-test
tmp/cache/webpacker
- key: ${{ runner.os }}-compiled-assets-v2-${{ hashFiles('app/assets/**', 'app/javascript/**', 'config/webpack/**', 'config/webpacker.yml', '**/package.json', '**/yarn.lock', '**/babel.config.js') }}
- restore-keys: ${{ runner.os }}-compiled-assets-v2-
+ key: ${{ runner.os }}-compiled-assets-v3-${{ hashFiles('app/assets/**', 'app/javascript/**', 'config/webpack/**', 'config/webpacker.yml', '**/package.json', '**/yarn.lock', '**/babel.config.js') }}
+ restore-keys: ${{ runner.os }}-compiled-assets-v3-
- name: Restore node_modules
uses: actions/cache/restore@v3
with:
@@ -288,16 +286,6 @@ jobs:
steps:
- uses: actions/checkout@v4
- - name: Restore compiled assets
- uses: actions/cache/restore@v3
- with:
- fail-on-cache-miss: true
- path: |
- public/assets
- public/packs-test
- tmp/cache/webpacker
- key: ${{ runner.os }}-compiled-assets-v2-${{ hashFiles('app/assets/**', 'app/javascript/**', 'config/webpack/**', 'config/webpacker.yml', '**/package.json', '**/yarn.lock', '**/babel.config.js') }}
- restore-keys: ${{ runner.os }}-compiled-assets-v2-
- name: Restore node_modules
uses: actions/cache/restore@v3
with:
@@ -348,10 +336,9 @@ jobs:
fail-on-cache-miss: true
path: |
public/assets
- public/packs-test
tmp/cache/webpacker
- key: ${{ runner.os }}-compiled-assets-v2-${{ hashFiles('app/assets/**', 'app/javascript/**', 'config/webpack/**', 'config/webpacker.yml', '**/package.json', '**/yarn.lock', '**/babel.config.js') }}
- restore-keys: ${{ runner.os }}-compiled-assets-v2-
+ key: ${{ runner.os }}-compiled-assets-v3-${{ hashFiles('app/assets/**', 'app/javascript/**', 'config/webpack/**', 'config/webpacker.yml', '**/package.json', '**/yarn.lock', '**/babel.config.js') }}
+ restore-keys: ${{ runner.os }}-compiled-assets-v3-
- name: Restore node_modules
uses: actions/cache/restore@v3
with:
@@ -394,15 +381,6 @@ jobs:
path: |
tmp/cypress_screenshots
cypress/logs
- - name: rename folder
- run: |
- rm -rf coverage/cypress/lcov-report
- mv coverage/cypress coverage/cypress-${{ matrix.ci_node_index }}
- - name: Upload test coverage result
- uses: actions/upload-artifact@v3
- with:
- name: coverage
- path: coverage/
- name: Upload test results to BuildPulse for flaky test detection
if: '!cancelled()' # Run this step even when the tests fail. Skip if the workflow is cancelled.
uses: Workshop64/buildpulse-action@master
@@ -424,7 +402,6 @@ jobs:
- run: |
mkdir coverage coverage/simplecov coverage/cypress
mv simplecov-* coverage/simplecov
- mv cypress-* coverage/cypress
mv jest coverage/jest
- uses: Wandalen/wretry.action@master
with:
@@ -444,15 +421,6 @@ jobs:
fail_ci_if_error: ${{ github.ref != 'refs/heads/main' }}
attempt_limit: 5
attempt_delay: 60000
- - uses: Wandalen/wretry.action@master
- with:
- action: codecov/codecov-action@v3
- with: |
- flags: cypress, javascript
- directory: coverage/cypress
- fail_ci_if_error: ${{ github.ref != 'refs/heads/main' }}
- attempt_limit: 5
- attempt_delay: 60000
CI-status-report:
runs-on: ubuntu-latest
diff --git a/.gitignore b/.gitignore
index 1536400f8..046b2a376 100644
--- a/.gitignore
+++ b/.gitignore
@@ -114,3 +114,6 @@ doc/
# spec reports
/spec/reports
/junit.xml
+
+/app/assets/builds/*
+!/app/assets/builds/.keep
diff --git a/Gemfile b/Gemfile
index e11c2c961..15cf95020 100644
--- a/Gemfile
+++ b/Gemfile
@@ -55,6 +55,7 @@ gem "imgproxy", "~> 2.1" # A gem that easily generates imgproxy URLs for your im
gem "inline_svg", "~> 1.8" # Embed SVG documents in your Rails views and style them with CSS
gem "jbuilder", "~> 2.11" # Create JSON structures via a Builder-style DSL
gem "js-routes", "~> 2.2" # Brings Rails named routes to javascript
+gem "jsbundling-rails", "~> 1.2" # A Rails plugin to bundle JavaScript
gem "jsonapi-serializer", "~> 2.2" # Serializer for Ruby objects
gem "kaminari", "~> 1.2" # A Scope & Engine based, clean, powerful, customizable and sophisticated paginator
gem "katex", "~> 0.9.0" # This rubygem enables you to render TeX math to HTML using KaTeX. It uses ExecJS under the hood
@@ -106,13 +107,12 @@ gem "staccato", "~> 0.5" # Ruby Google Analytics Measurement
gem "sterile", "~> 1.0" # Transliterate Unicode and Latin1 text to 7-bit ASCII for URLs
gem "stripe", "~> 5.55" # Ruby library for the Stripe API
gem "strong_migrations", "~> 1.2" # Catch unsafe migrations
+gem "terser", "~> 1.1" # Terser is a Ruby wrapper for the terser JavaScript parser and minifier
gem "twitter", "~> 7.0" # A Ruby interface to the Twitter API
-gem "uglifier", "~> 4.2" # Uglifier minifies JavaScript files
gem "validate_url", "~> 1.0" # Library for validating urls in Rails
gem "vault", "~> 0.17" # Used to store secrets
gem "warning", "~> 1.3" # Adds custom processing for warnings, including the ability to ignore specific warning messages
gem "wcag_color_contrast", "~> 0.1" # Detect contrast of colors to determine readability and a11y.
-gem "webpacker", "~> 5.4.3" # Use webpack to manage app-like JavaScript modules in Rails
group :development do
gem "better_errors", "~> 2.9" # Provides a better error page for Rails and other Rack apps
diff --git a/Gemfile.lock b/Gemfile.lock
index 6d7ed6838..d167e6a2f 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -430,6 +430,8 @@ GEM
sass (>= 3.2)
js-routes (2.2.8)
railties (>= 4)
+ jsbundling-rails (1.2.1)
+ railties (>= 6.0.0)
json (2.7.1)
json-schema (2.8.1)
addressable (>= 2.4)
@@ -633,8 +635,6 @@ GEM
rack
rack-protection (3.1.0)
rack (~> 2.2, >= 2.2.4)
- rack-proxy (0.7.6)
- rack
rack-test (2.1.0)
rack (>= 1.3)
rack-timeout (0.6.3)
@@ -825,7 +825,6 @@ GEM
addressable (>= 2.3.5)
faraday (>= 0.17.3, < 3)
sax-machine (1.3.2)
- semantic_range (3.0.0)
sexp_processor (4.16.1)
shellany (0.0.1)
shoulda-matchers (5.3.0)
@@ -897,6 +896,8 @@ GEM
activerecord (>= 5.2)
terminal-table (3.0.2)
unicode-display_width (>= 1.1.1, < 3)
+ terser (1.1.20)
+ execjs (>= 0.3.0, < 3)
test-prof (1.3.1)
thor (1.3.0)
thread (0.2.2)
@@ -917,8 +918,6 @@ GEM
simple_oauth (~> 0.3.0)
tzinfo (2.0.6)
concurrent-ruby (~> 1.0)
- uglifier (4.2.0)
- execjs (>= 0.3.0, < 3)
unaccent (0.4.0)
unf (0.1.4)
unf_ext
@@ -945,11 +944,6 @@ GEM
addressable (>= 2.8.0)
crack (>= 0.3.2)
hashdiff (>= 0.4.0, < 2.0.0)
- webpacker (5.4.4)
- activesupport (>= 5.2)
- rack-proxy (>= 0.6.1)
- railties (>= 5.2)
- semantic_range (>= 2.3.0)
webpush (1.1.0)
hkdf (~> 0.2)
jwt (~> 2.0)
@@ -1044,6 +1038,7 @@ DEPENDENCIES
inline_svg (~> 1.8)
jbuilder (~> 2.11)
js-routes (~> 2.2)
+ jsbundling-rails (~> 1.2)
jsonapi-serializer (~> 2.2)
kaminari (~> 1.2)
katex (~> 0.9.0)
@@ -1118,10 +1113,10 @@ DEPENDENCIES
stripe (~> 5.55)
stripe-ruby-mock (= 3.1.0.rc3)
strong_migrations (~> 1.2)
+ terser (~> 1.1)
test-prof (~> 1.0)
timecop (~> 0.9)
twitter (~> 7.0)
- uglifier (~> 4.2)
validate_url (~> 1.0)
vault (~> 0.17)
vcr (~> 6.1)
@@ -1129,7 +1124,6 @@ DEPENDENCIES
wcag_color_contrast (~> 0.1)
web-console (~> 4.2)
webmock (~> 3.17)
- webpacker (~> 5.4.3)
with_model (~> 2.1.7)
yard (~> 0.9)
yard-activerecord (~> 0.0)
diff --git a/Procfile.dev b/Procfile.dev
index 18d7c1e49..e9e055e81 100644
--- a/Procfile.dev
+++ b/Procfile.dev
@@ -1,3 +1,3 @@
web: bin/rails s -p 3000 -b 0.0.0.0
-webpacker: ./bin/webpack-dev-server
sidekiq: bundle exec sidekiq
+js: yarn build --watch
diff --git a/app/assets/builds/.keep b/app/assets/builds/.keep
new file mode 100644
index 000000000..e69de29bb
diff --git a/app/assets/config/manifest.js b/app/assets/config/manifest.js
index 1398bb527..b6fd47aaf 100644
--- a/app/assets/config/manifest.js
+++ b/app/assets/config/manifest.js
@@ -5,3 +5,4 @@
//= link s3_direct_upload.js
//= link katex.css
//= link icon.png
+//= link_tree ../builds
diff --git a/app/javascript/admin/controllers/snackbar_controller.js b/app/javascript/admin/controllers/snackbar_controller.js
index 316af6c9e..1e6b721fe 100644
--- a/app/javascript/admin/controllers/snackbar_controller.js
+++ b/app/javascript/admin/controllers/snackbar_controller.js
@@ -8,7 +8,7 @@ export default class SnackbarController extends Controller {
const [{ h, render }, { Snackbar }] = await Promise.all([
import('preact'),
// eslint-disable-next-line import/no-unresolved
- import('Snackbar'),
+ import('../../Snackbar'),
]);
render(, this.snackZoneTarget);
@@ -25,7 +25,7 @@ export default class SnackbarController extends Controller {
const { message, addCloseButton = false } = event.detail;
// eslint-disable-next-line import/no-unresolved
- const { addSnackbarItem } = await import('Snackbar');
+ const { addSnackbarItem } = await import('../../Snackbar');
addSnackbarItem({ message, addCloseButton });
}
}
diff --git a/app/javascript/billboard/locations/templates.jsx b/app/javascript/billboard/locations/templates.jsx
index 440705d77..1493f8583 100644
--- a/app/javascript/billboard/locations/templates.jsx
+++ b/app/javascript/billboard/locations/templates.jsx
@@ -1,7 +1,7 @@
import { h } from 'preact';
import { useCallback } from 'preact/hooks';
import { ButtonNew as Button, Icon } from '@crayons';
-import { Close } from '@images/x.svg';
+import Close from '@images/x.svg';
/**
* Higher-order component that returns a template responsible for the layout of
diff --git a/app/javascript/crayons/MultiSelectAutocomplete/TagAutocompleteSelection.jsx b/app/javascript/crayons/MultiSelectAutocomplete/TagAutocompleteSelection.jsx
index 2e4f556d9..f536425ab 100644
--- a/app/javascript/crayons/MultiSelectAutocomplete/TagAutocompleteSelection.jsx
+++ b/app/javascript/crayons/MultiSelectAutocomplete/TagAutocompleteSelection.jsx
@@ -1,7 +1,7 @@
import { h } from 'preact';
import PropTypes from 'prop-types';
import { ButtonNew as Button, Icon } from '@crayons';
-import { Close } from '@images/x.svg';
+import Close from '@images/x.svg';
/**
* Responsible for the layout of a tag autocomplete selected item in the article form
diff --git a/app/javascript/packs/admin.js b/app/javascript/packs/admin.js
index dd239958c..287a2d907 100644
--- a/app/javascript/packs/admin.js
+++ b/app/javascript/packs/admin.js
@@ -1,5 +1,5 @@
import { Application } from '@hotwired/stimulus';
-import { definitionsFromContext } from '@hotwired/stimulus-webpack-helpers';
+import { definitions } from 'stimulus:../admin/controllers'; // eslint-disable-line import/no-unresolved
import Rails from '@rails/ujs';
import 'focus-visible';
@@ -11,5 +11,4 @@ Rails.start();
// section of the application.
const application = Application.start();
-const context = require.context('admin/controllers', true, /.js$/);
-application.load(definitionsFromContext(context));
+application.load(definitions);
diff --git a/app/javascript/packs/base.jsx b/app/javascript/packs/application.jsx
similarity index 100%
rename from app/javascript/packs/base.jsx
rename to app/javascript/packs/application.jsx
diff --git a/app/javascript/shared/components/defaultSelectionTemplate.jsx b/app/javascript/shared/components/defaultSelectionTemplate.jsx
index 779be1c27..02c505db5 100644
--- a/app/javascript/shared/components/defaultSelectionTemplate.jsx
+++ b/app/javascript/shared/components/defaultSelectionTemplate.jsx
@@ -1,7 +1,7 @@
-import { h } from 'preact';
+import { Fragment, h } from 'preact';
import PropTypes from 'prop-types';
import { Icon, ButtonNew as Button } from '@crayons';
-import { Close } from '@images/x.svg';
+import Close from '@images/x.svg';
/**
* Responsible for the layout of a selected item in the crayons autocomplete and multi input components
diff --git a/app/javascript/utilities/__tests__/codeFullscreenModeSwitcher.test.js b/app/javascript/utilities/__tests__/codeFullscreenModeSwitcher.test.js
index ec6ca636b..492f81d6e 100644
--- a/app/javascript/utilities/__tests__/codeFullscreenModeSwitcher.test.js
+++ b/app/javascript/utilities/__tests__/codeFullscreenModeSwitcher.test.js
@@ -1,9 +1,11 @@
-const importModule = () => import('@utilities/codeFullscreenModeSwitcher');
+import {
+ addFullScreenModeControl,
+ getFullScreenModeStatus,
+ onPressEscape,
+ onPopstate,
+} from '@utilities/codeFullscreenModeSwitcher';
describe('CodeFullScreenModeSwitcher Utility', () => {
- let addFullScreenModeControl, getFullScreenModeStatus;
- let onPressEscape, onPopstate;
-
const getFullScreenElements = () =>
['.js-fullscreen-code.is-open', '.js-code-highlight.is-fullscreen'].map(
(selector) => document.body.querySelector(selector),
@@ -40,19 +42,9 @@ describe('CodeFullScreenModeSwitcher Utility', () => {
`;
- });
-
- beforeAll(async () => {
- ({ addFullScreenModeControl, getFullScreenModeStatus } =
- await importModule());
addFullScreenModeControl(getEnterFullScreenButtons());
});
- beforeAll(async () => {
- // eventListener functions
- ({ onPressEscape, onPopstate } = await importModule());
- });
-
// Assertions are called within the `testNonFullScreen` function.
// eslint-disable-next-line jest/expect-expect
it('starts in non-fullscreen mode', testNonFullScreen);
diff --git a/app/javascript/utilities/codeFullscreenModeSwitcher.js b/app/javascript/utilities/codeFullscreenModeSwitcher.js
index 5e42a6404..f4cbee18b 100644
--- a/app/javascript/utilities/codeFullscreenModeSwitcher.js
+++ b/app/javascript/utilities/codeFullscreenModeSwitcher.js
@@ -1,7 +1,5 @@
let isFullScreenModeCodeOn = false;
let screenScroll = 0;
-const fullScreenWindow =
- document.getElementsByClassName('js-fullscreen-code')[0];
const { body } = document;
export function getFullScreenModeStatus() {
@@ -67,6 +65,8 @@ function removeFullScreenModeControl(elements) {
}
function fullScreenModeControl(event) {
+ const fullScreenWindow =
+ document.getElementsByClassName('js-fullscreen-code')[0];
const codeBlock = event?.currentTarget.closest('.js-code-highlight')
? event.currentTarget.closest('.js-code-highlight').cloneNode(true)
: null;
diff --git a/app/views/admin/articles/index.html.erb b/app/views/admin/articles/index.html.erb
index db7fa74e6..e7ed45cb3 100644
--- a/app/views/admin/articles/index.html.erb
+++ b/app/views/admin/articles/index.html.erb
@@ -52,4 +52,4 @@
<%= render partial: "image_upload_script" %>
-<%= javascript_packs_with_chunks_tag "admin/convertUserIdsToUsernameInputs" %>
+<%= javascript_include_tag "admin/convertUserIdsToUsernameInputs" %>
diff --git a/app/views/admin/billboards/_form.html.erb b/app/views/admin/billboards/_form.html.erb
index 6e74baeba..26796ef41 100644
--- a/app/views/admin/billboards/_form.html.erb
+++ b/app/views/admin/billboards/_form.html.erb
@@ -157,4 +157,4 @@
-<%= javascript_packs_with_chunks_tag "admin/billboards", defer: true %>
+<%= javascript_include_tag "admin/billboards", defer: true %>
diff --git a/app/views/admin/creator_settings/_form.html.erb b/app/views/admin/creator_settings/_form.html.erb
index 9e76d95b5..88e61b775 100644
--- a/app/views/admin/creator_settings/_form.html.erb
+++ b/app/views/admin/creator_settings/_form.html.erb
@@ -82,4 +82,4 @@
-<%= javascript_packs_with_chunks_tag "admin/creatorOnboarding", defer: true %>
+<%= javascript_include_tag "admin/creatorOnboarding", defer: true %>
diff --git a/app/views/admin/gdpr_delete_requests/index.html.erb b/app/views/admin/gdpr_delete_requests/index.html.erb
index bbaa6fa75..6e320bf4e 100644
--- a/app/views/admin/gdpr_delete_requests/index.html.erb
+++ b/app/views/admin/gdpr_delete_requests/index.html.erb
@@ -1,4 +1,4 @@
-<%= javascript_packs_with_chunks_tag "admin/users/gdprDeleteRequests", defer: true %>
+<%= javascript_include_tag "admin/users/gdprDeleteRequests", defer: true %>
GDPR Actions
diff --git a/app/views/admin/invitations/index.html.erb b/app/views/admin/invitations/index.html.erb
index 494585c13..a71dae4bc 100644
--- a/app/views/admin/invitations/index.html.erb
+++ b/app/views/admin/invitations/index.html.erb
@@ -1,4 +1,4 @@
-<%= javascript_packs_with_chunks_tag "admin/users/controls", "admin/users/memberIndex", defer: true %>
+<%= javascript_include_tag "admin/users/controls", "admin/users/memberIndex", defer: true %>
diff --git a/app/views/admin/listing_categories/_form.html.erb b/app/views/admin/listing_categories/_form.html.erb
index 0da78c02a..d6b1f4dd2 100644
--- a/app/views/admin/listing_categories/_form.html.erb
+++ b/app/views/admin/listing_categories/_form.html.erb
@@ -29,4 +29,4 @@
<%= text_area_tag :social_preview_description, @listing_category.social_preview_description, size: "100x10", class: "crayons-textfield" %>
-<%= javascript_packs_with_chunks_tag "enhanceColorPickers", defer: true %>
+<%= javascript_include_tag "enhanceColorPickers", defer: true %>
diff --git a/app/views/admin/organizations/show.html.erb b/app/views/admin/organizations/show.html.erb
index a32cb3ad9..9fd4c9a8a 100644
--- a/app/views/admin/organizations/show.html.erb
+++ b/app/views/admin/organizations/show.html.erb
@@ -1,4 +1,4 @@
-<%= javascript_packs_with_chunks_tag "admin/organizations", defer: true %>
+<%= javascript_include_tag "admin/organizations", defer: true %>
diff --git a/app/views/admin/overview/index.html.erb b/app/views/admin/overview/index.html.erb
index f7c178299..67213c709 100644
--- a/app/views/admin/overview/index.html.erb
+++ b/app/views/admin/overview/index.html.erb
@@ -1,4 +1,4 @@
-<%= javascript_packs_with_chunks_tag "admin/overview", defer: true %>
+<%= javascript_include_tag "admin/overview", defer: true %>
Overview
diff --git a/app/views/admin/settings/forms/_monetization.html.erb b/app/views/admin/settings/forms/_monetization.html.erb
index 328b6e647..a7f934f38 100644
--- a/app/views/admin/settings/forms/_monetization.html.erb
+++ b/app/views/admin/settings/forms/_monetization.html.erb
@@ -47,7 +47,7 @@
autocomplete: "off",
data: { all_countries: billboard_all_countries_for_editing } %>
- <%= javascript_packs_with_chunks_tag "admin/billboardEnabledCountries", defer: true %>
+ <%= javascript_include_tag "admin/billboardEnabledCountries", defer: true %>
<% end %>
<%= render "update_setting_button", f: f %>
diff --git a/app/views/admin/settings/forms/_smtp.html.erb b/app/views/admin/settings/forms/_smtp.html.erb
index 487904fb2..cfa8c4a87 100644
--- a/app/views/admin/settings/forms/_smtp.html.erb
+++ b/app/views/admin/settings/forms/_smtp.html.erb
@@ -1,4 +1,4 @@
-<%= javascript_packs_with_chunks_tag "admin/config/smtp", defer: true %>
+<%= javascript_include_tag "admin/config/smtp", defer: true %>
<%= form_for(Settings::SMTP.new,
url: admin_settings_smtp_settings_path,
diff --git a/app/views/admin/settings/forms/_user_experience.html.erb b/app/views/admin/settings/forms/_user_experience.html.erb
index cb8c1ab53..283e087ef 100644
--- a/app/views/admin/settings/forms/_user_experience.html.erb
+++ b/app/views/admin/settings/forms/_user_experience.html.erb
@@ -137,4 +137,4 @@
<% end %>
-<%= javascript_packs_with_chunks_tag "enhanceColorPickers", defer: true %>
+<%= javascript_include_tag "enhanceColorPickers", defer: true %>
diff --git a/app/views/admin/settings/show.html.erb b/app/views/admin/settings/show.html.erb
index f41ff3c16..643a03e9c 100644
--- a/app/views/admin/settings/show.html.erb
+++ b/app/views/admin/settings/show.html.erb
@@ -27,4 +27,4 @@
<%= render partial: "forms/user_experience" %>
-<%= javascript_packs_with_chunks_tag "admin/convertUserIdsToUsernameInputs" %>
+<%= javascript_include_tag "admin/convertUserIdsToUsernameInputs" %>
diff --git a/app/views/admin/shared/_flag_reactions_table.html.erb b/app/views/admin/shared/_flag_reactions_table.html.erb
index c58996629..50d5b9391 100644
--- a/app/views/admin/shared/_flag_reactions_table.html.erb
+++ b/app/views/admin/shared/_flag_reactions_table.html.erb
@@ -1,4 +1,4 @@
-<%= javascript_packs_with_chunks_tag "admin/shared/flagReactionItemDropdownButton", defer: true %>
+<%= javascript_include_tag "admin/shared/flagReactionItemDropdownButton", defer: true %>
<% if vomit_reactions.present? %>
<% vomit_reactions.each do |vomit_reaction| %>
<%= render "admin/shared/flag_reaction_item", vomit_reaction: vomit_reaction, text_section: text_section %>
diff --git a/app/views/admin/tags/_form.html.erb b/app/views/admin/tags/_form.html.erb
index abec29c18..30e7c9885 100644
--- a/app/views/admin/tags/_form.html.erb
+++ b/app/views/admin/tags/_form.html.erb
@@ -63,4 +63,4 @@
<%= f.submit class: "crayons-btn mt-3" %>
<% end %>
-<%= javascript_packs_with_chunks_tag "enhanceColorPickers", defer: true %>
+<%= javascript_include_tag "enhanceColorPickers", defer: true %>
diff --git a/app/views/admin/tags/edit.html.erb b/app/views/admin/tags/edit.html.erb
index 4f9230e61..324421b4c 100644
--- a/app/views/admin/tags/edit.html.erb
+++ b/app/views/admin/tags/edit.html.erb
@@ -48,4 +48,4 @@
-<%= javascript_packs_with_chunks_tag "admin/convertUserIdsToUsernameInputs" %>
+<%= javascript_include_tag "admin/convertUserIdsToUsernameInputs" %>
diff --git a/app/views/admin/users/index.html.erb b/app/views/admin/users/index.html.erb
index 250f6bda6..e4b3ccc86 100644
--- a/app/views/admin/users/index.html.erb
+++ b/app/views/admin/users/index.html.erb
@@ -1,4 +1,4 @@
-<%= javascript_packs_with_chunks_tag "admin/users/memberIndex", defer: true %>
+<%= javascript_include_tag "admin/users/memberIndex", defer: true %>
diff --git a/app/views/admin/users/index/_controls.html.erb b/app/views/admin/users/index/_controls.html.erb
index 8aa2e165b..957607c34 100644
--- a/app/views/admin/users/index/_controls.html.erb
+++ b/app/views/admin/users/index/_controls.html.erb
@@ -1,4 +1,4 @@
-<%= javascript_packs_with_chunks_tag "admin/users/controls", defer: true %>
+<%= javascript_include_tag "admin/users/controls", defer: true %>
<%= form_with url: admin_users_path, method: :get, local: true do |f| %>
diff --git a/app/views/admin/users/show/profile/_actions.html.erb b/app/views/admin/users/show/profile/_actions.html.erb
index 293724eae..04839cac6 100644
--- a/app/views/admin/users/show/profile/_actions.html.erb
+++ b/app/views/admin/users/show/profile/_actions.html.erb
@@ -1,4 +1,4 @@
-<%= javascript_packs_with_chunks_tag "admin/editUser", defer: true %>
+<%= javascript_include_tag "admin/editUser", defer: true %>
-<%= javascript_packs_with_chunks_tag "billboard", defer: true %>
+<%= javascript_include_tag "billboard", defer: true %>
diff --git a/app/views/articles/edit.html.erb b/app/views/articles/edit.html.erb
index f057731c8..251c6dd38 100644
--- a/app/views/articles/edit.html.erb
+++ b/app/views/articles/edit.html.erb
@@ -29,5 +29,5 @@
<%= render "shared/webcomponents_loader_script" %>
<%= render "articles/v2_form", article: @article, organizations: @organizations, version: @version %>
-<%= javascript_packs_with_chunks_tag "articleForm", defer: true %>
+<%= javascript_include_tag "articleForm", defer: true %>
" data-markdown-lint-js-path="<%= asset_path("markdownlint-browser.min.js") %>">
diff --git a/app/views/articles/index.html.erb b/app/views/articles/index.html.erb
index 2a42c60f6..a37f73cad 100644
--- a/app/views/articles/index.html.erb
+++ b/app/views/articles/index.html.erb
@@ -24,7 +24,7 @@
<%= auto_discovery_link_tag(:rss, app_url("feed"), title: t("views.stories.meta.rss", name: community_name)) %>
<% end %>
-<%= javascript_packs_with_chunks_tag "homePage", defer: true %>
+<%= javascript_include_tag "homePage", defer: true %>
<% cache(release_adjusted_cache_key("main-stories-index-#{params}-#{user_signed_in?}"), expires_in: 90.seconds) do %>
<% if @hero_billboard && FeatureFlag.enabled?(:hero_billboard) %>
<%= render partial: "shared/billboard", locals: { billboard: @hero_billboard, data_context_type: BillboardEvent::CONTEXT_TYPE_HOME } %>
@@ -108,5 +108,5 @@
<%= render "articles/sidebar_additional" %>
- <%= javascript_packs_with_chunks_tag "storiesList", "followButtons", "feedPreviewCards", "heroBannerClose", "localizeArticleDates", "feedEvents", defer: true %>
+ <%= javascript_include_tag "storiesList", "followButtons", "feedPreviewCards", "heroBannerClose", "localizeArticleDates", "feedEvents", defer: true %>
<% end %>
diff --git a/app/views/articles/new.html.erb b/app/views/articles/new.html.erb
index 15ae7bb0b..057b4485e 100644
--- a/app/views/articles/new.html.erb
+++ b/app/views/articles/new.html.erb
@@ -6,7 +6,7 @@
<% if user_signed_in? %>
<%= render "shared/webcomponents_loader_script" %>
<%= render "articles/v2_form", article: @article, organizations: @organizations, version: @version %>
- <%= javascript_packs_with_chunks_tag "articleForm", defer: true %>
+ <%= javascript_include_tag "articleForm", defer: true %>
" data-markdown-lint-js-path="<%= asset_path("markdownlint-browser.min.js") %>">
<% else %>
<% @new_article_not_logged_in = true %>
diff --git a/app/views/articles/show.html.erb b/app/views/articles/show.html.erb
index a7b81a165..33d3cff2c 100644
--- a/app/views/articles/show.html.erb
+++ b/app/views/articles/show.html.erb
@@ -8,9 +8,9 @@
<%= render "shared/webcomponents_loader_script" %>
<% if user_signed_in? %>
- <%= javascript_packs_with_chunks_tag "webShare", "articlePage", "articleModerationTools", "commentDropdowns", defer: true %>
+ <%= javascript_include_tag "webShare", "articlePage", "articleModerationTools", "commentDropdowns", defer: true %>
<% else %>
- <%= javascript_packs_with_chunks_tag "webShare", "articlePage", "commentDropdowns", defer: true %>
+ <%= javascript_include_tag "webShare", "articlePage", "commentDropdowns", defer: true %>
<% end %>
<% cache("content-related-optional-scripts-#{@article.id}-#{@article.updated_at}-#{internal_navigation?}-#{user_signed_in?}", expires_in: 30.hours) do %>
@@ -236,7 +236,7 @@
<%= render "moderations/modals/unflag_user_modal" %>
-<%= javascript_packs_with_chunks_tag "followButtons", "billboard", "localizeArticleDates", "articleReactions", defer: true %>
+<%= javascript_include_tag "followButtons", "billboard", "localizeArticleDates", "articleReactions", defer: true %>
diff --git a/app/views/onboardings/show.html.erb b/app/views/onboardings/show.html.erb
index a3473669e..c012b208b 100644
--- a/app/views/onboardings/show.html.erb
+++ b/app/views/onboardings/show.html.erb
@@ -17,7 +17,7 @@
data-community-logo="<%= optimized_image_url(Settings::General.logo_png) %>"
data-community-background-color="<%= gradient_from_hex(Settings::UserExperience.primary_brand_color_hex)[:light] %>"
data-community-background-color2="<%= gradient_from_hex(Settings::UserExperience.primary_brand_color_hex)[:dark] %>">
- <%= javascript_packs_with_chunks_tag "Onboarding", defer: true %>
+ <%= javascript_include_tag "Onboarding", defer: true %>
diff --git a/app/views/organizations/members.html.erb b/app/views/organizations/members.html.erb
index 3d41b5276..5a89b6ead 100644
--- a/app/views/organizations/members.html.erb
+++ b/app/views/organizations/members.html.erb
@@ -26,4 +26,4 @@
-<%= javascript_packs_with_chunks_tag "followButtons", defer: true %>
+<%= javascript_include_tag "followButtons", defer: true %>
diff --git a/app/views/organizations/show.html.erb b/app/views/organizations/show.html.erb
index 3e053e2b0..74ecbe380 100644
--- a/app/views/organizations/show.html.erb
+++ b/app/views/organizations/show.html.erb
@@ -29,4 +29,4 @@
-<%= javascript_packs_with_chunks_tag "storiesList", "followButtons", "hideBookmarkButtons", "localizeArticleDates", defer: true %>
+<%= javascript_include_tag "storiesList", "followButtons", "hideBookmarkButtons", "localizeArticleDates", defer: true %>
diff --git a/app/views/podcast_episodes/index.html.erb b/app/views/podcast_episodes/index.html.erb
index 25ab3e72b..6e3c7949d 100644
--- a/app/views/podcast_episodes/index.html.erb
+++ b/app/views/podcast_episodes/index.html.erb
@@ -98,4 +98,4 @@
-<%= javascript_packs_with_chunks_tag "storiesList", "followButtons", defer: true %>
+<%= javascript_include_tag "storiesList", "followButtons", defer: true %>
diff --git a/app/views/podcast_episodes/show.html.erb b/app/views/podcast_episodes/show.html.erb
index 908353d24..e86531882 100644
--- a/app/views/podcast_episodes/show.html.erb
+++ b/app/views/podcast_episodes/show.html.erb
@@ -98,7 +98,7 @@
data-commentable-id="<%= @episode.id %>"
data-commentable-type="PodcastEpisode"
data-follow-button-container="true">
- <%= javascript_packs_with_chunks_tag "commentDropdowns", defer: true %>
+ <%= javascript_include_tag "commentDropdowns", defer: true %>
<%= render "/comments/form",
commentable: @episode,
commentable_type: "PodcastEpisode" %>
@@ -115,4 +115,4 @@
<%= render "podcast_episodes/podcast_bar", podcast: @podcast, episode: @episode %>
-<%= javascript_packs_with_chunks_tag "followButtons", defer: true %>
+<%= javascript_include_tag "followButtons", defer: true %>
diff --git a/app/views/podcasts/_form.html.erb b/app/views/podcasts/_form.html.erb
index d67f5ce6d..31ad55941 100644
--- a/app/views/podcasts/_form.html.erb
+++ b/app/views/podcasts/_form.html.erb
@@ -1,4 +1,4 @@
-<%= javascript_packs_with_chunks_tag "validateFileInputs", defer: true %>
+<%= javascript_include_tag "validateFileInputs", defer: true %>
<%= form_with(model: podcast, local: true) do |form| %>
diff --git a/app/views/reading_list_items/index.html.erb b/app/views/reading_list_items/index.html.erb
index 177ce94cd..9dee5c006 100644
--- a/app/views/reading_list_items/index.html.erb
+++ b/app/views/reading_list_items/index.html.erb
@@ -19,4 +19,4 @@
-<%= javascript_packs_with_chunks_tag "readingList", defer: true %>
+<%= javascript_include_tag "readingList", defer: true %>
diff --git a/app/views/shared/_logo_design.html.erb b/app/views/shared/_logo_design.html.erb
index ea0a144e9..e3ff9ace8 100644
--- a/app/views/shared/_logo_design.html.erb
+++ b/app/views/shared/_logo_design.html.erb
@@ -33,4 +33,4 @@
<%= inline_svg_tag("preview-logo.svg", id: "color-select-preview-logo", class: "p-4 radius-default", title: t("views.logo.preview.icon")) %>
-<%= javascript_packs_with_chunks_tag "enhanceColorPickers", defer: true %>
+<%= javascript_include_tag "enhanceColorPickers", defer: true %>
diff --git a/app/views/shared/authentication/_forem_creator_signup.html.erb b/app/views/shared/authentication/_forem_creator_signup.html.erb
index 3f78c16a7..a3afa62c6 100644
--- a/app/views/shared/authentication/_forem_creator_signup.html.erb
+++ b/app/views/shared/authentication/_forem_creator_signup.html.erb
@@ -1,4 +1,4 @@
-<%= javascript_packs_with_chunks_tag "foremCreatorSignup", defer: true %>
+<%= javascript_include_tag "foremCreatorSignup", defer: true %>