teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

デプロイ環境で生じていた"jQueryがない"というエラーは解決しました

2020/07/23 05:13

投稿

naokit-dev
naokit-dev

スコア424

title CHANGED
File without changes
body CHANGED
@@ -200,4 +200,35 @@
200
200
  </div>
201
201
  ```
202
202
 
203
- `$('#modal_initial').modal();`の部分を`$('#modal_initial').show();`や`$('#modal_initial.modal').show();`とするとよいなどのアドバイスも海外サイトで見られましたが、いずれも駄目でした
203
+ `$('#modal_initial').modal();`の部分を`$('#modal_initial').show();`や`$('#modal_initial.modal').show();`とするとよいなどのアドバイスも海外サイトで見られましたが、いずれも駄目でした
204
+
205
+ # 追記
206
+ デプロイ環境でのみ、jQueryがないと言われるエラーについては
207
+ 以下のように変更することで解消しました
208
+
209
+ `config/webpack/environment.js`
210
+
211
+ ```javascript
212
+ const {
213
+ environment
214
+ } = require('@rails/webpacker')
215
+
216
+ const webpack = require('webpack')
217
+
218
+ #以下'jquery'から'jquery/src/jquery'に変更
219
+ environment.plugins.prepend('Provide',
220
+ new webpack.ProvidePlugin({
221
+ $: 'jquery/src/jquery',
222
+ jQuery: 'jquery/src/jquery',
223
+ Popper: ['popper.js', 'default']
224
+ })
225
+ )
226
+
227
+ module.exports = environment
228
+ ```
229
+
230
+ 現状の問題点は
231
+ - webpackerで管理しているBootstrapのスタイルは適応されるが、特定のjavascriptが動かない
232
+ - <head>内でCDNからBootstrapをインストールすると、前述のjavascriptが動く
233
+
234
+ 対症的解決法はあるのですが、後学のため根本解決のためのアドバイスを引き続きお願いいたします。