diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js
index 519fd03fa..16b3f2518 100644
--- a/app/javascript/packs/application.js
+++ b/app/javascript/packs/application.js
@@ -12,6 +12,7 @@ require('jquery-hotkeys');
// should start looking for nodejs replacements
importAll(require.context('../vendor', true, /\.js$/));
+require('jquery');
require("jquery-ui/ui/effects/effect-shake");
require("jquery-ui/ui/widgets/autocomplete");
require("jquery-ui/ui/widgets/button");
@@ -33,6 +34,7 @@ require("@fortawesome/fontawesome-free/css/regular.css");
importAll(require.context('../src/javascripts', true, /\.js(\.erb)?$/));
importAll(require.context('../src/styles', true, /\.s?css(?:\.erb)?$/));
+export { default as jQuery } from "jquery";
export { default as Autocomplete } from '../src/javascripts/autocomplete.js.erb';
export { default as Blacklist } from '../src/javascripts/blacklists.js';
export { default as Comment } from '../src/javascripts/comments.js';
diff --git a/app/views/layouts/blank.html.erb b/app/views/layouts/blank.html.erb
index 955d07f4d..b907fc2f7 100644
--- a/app/views/layouts/blank.html.erb
+++ b/app/views/layouts/blank.html.erb
@@ -6,7 +6,6 @@
<%= csrf_meta_tag %>
<%= raw Danbooru.config.custom_html_header_content %>
-
<%= javascript_pack_tag "application" %>
<%= stylesheet_pack_tag "application" %>
<%= yield :html_header %>
diff --git a/app/views/layouts/default.html.erb b/app/views/layouts/default.html.erb
index ea2c05e17..1c8540062 100644
--- a/app/views/layouts/default.html.erb
+++ b/app/views/layouts/default.html.erb
@@ -14,7 +14,6 @@
<% if CurrentUser.user.blacklisted_tags.present? %>
">
<% end %>
-
<%= javascript_pack_tag "application" %>
<%= stylesheet_pack_tag "application" %>
<% if CurrentUser.user.custom_style.present? && params.fetch(:css, "true").truthy? %>
@@ -123,6 +122,8 @@
window.Danbooru.notice = Danbooru.Utility.notice;
window.Danbooru.error = Danbooru.Utility.error;
+ window.$ = Danbooru.jQuery;
+ window.jQuery = Danbooru.jQuery;
<%= render "static/footer" %>
diff --git a/config/webpack/environment.js b/config/webpack/environment.js
index 466faa138..607382c5e 100644
--- a/config/webpack/environment.js
+++ b/config/webpack/environment.js
@@ -6,8 +6,8 @@ environment.loaders.append('erb', erb);
environment.config.output.library = ["Danbooru"];
-environment.config.externals = {
- jquery: "jQuery"
-}
+environment.config.set("resolve.alias", {
+ "jquery": "jquery/src/jquery.js"
+});
module.exports = environment
diff --git a/package.json b/package.json
index 1d7b508c4..639b801d0 100644
--- a/package.json
+++ b/package.json
@@ -8,6 +8,7 @@
"dropzone": "^5.5.1",
"expose-loader": "^0.7.5",
"hammerjs": "^2.0.8",
+ "jquery": "3.4.1",
"jquery-hotkeys": "^0.2.2",
"jquery-ui": "^1.12.1",
"rails-erb-loader": "^5.5.0",
diff --git a/yarn.lock b/yarn.lock
index 544a14be1..1074324ed 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -4711,6 +4711,11 @@ jquery-ui@^1.12.1:
resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.12.1.tgz#bcb4045c8dd0539c134bc1488cdd3e768a7a9e51"
integrity sha1-vLQEXI3QU5wTS8FIjN0+dop6nlE=
+jquery@3.4.1:
+ version "3.4.1"
+ resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2"
+ integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw==
+
js-base64@^2.1.8:
version "2.6.2"
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.2.tgz#cf9301bc5cc756892a9a6c8d7138322e5944fb0d"