rails6.1.0です。
フロント側でjQuery File Uploadを使う必要があり、
jQueryプラグインをインストールしましたがエラーを解消できずにいます。
手順としては、
・jQuery と jQueryUIをインストール
・jquery.ui.widget.js と z.jquery.fileupload.js の2つのjsファイルを利用
という流れのようです。それは以下を参考にしました。
参考にしたサイト
Rails での S3 への画像の直接アップロード
rails6 webpacker で jquery-ui
・jQuery本体とjQueryUIはyarnでインストールしました。
・jquery.ui.widget.js と z.jquery.fileupload.jsは、app\javascriptに配置しました。
app\javascript\packs\application.js
ruby
1// jquery 2var jQuery = require('jquery') 3global.$ = global.jQuery = jQuery; 4window.$ = window.jQuery = jQuery; 5 6require ('jquery-ui') 7require ('jquery.ui.widget') 8require ('z.jquery.fileupload')
この状態で確認するとconsoleに以下のエラーが出ます。
jquery.ui.widget.jsの中で./version.jsを読めないというエラー?でしょうか。
jquery.ui.widget.js:20 Uncaught Error: Cannot find module './version' at webpackMissingModule (jquery.ui.widget.js:20) at jquery.ui.widget.js:20 at Object../app/javascript/jquery.ui.widget.js (jquery.ui.widget.js:26) at __webpack_require__ (bootstrap:19) at Module.<anonymous> (application.js:57) at Module../app/javascript/packs/application.js (application.js:62) at __webpack_require__ (bootstrap:19) at bootstrap:83 at bootstrap:83
###試したこと
environment.jsに追加してみました。
コメントで囲ってるのが追加した部分です。
\config\webpack\environment.js
ruby
1const { environment } = require('@rails/webpacker') 2 3 4const webpack = require('webpack') 5environment.plugins.prepend('Provide', 6 new webpack.ProvidePlugin({ 7 $: 'jquery/src/jquery', 8 jQuery: 'jquery/src/jquery' 9 }) 10) 11 12 13//jQueryUI追加ここから 14environment.toWebpackConfig().merge({ 15 resolve: { 16 alias: { 17 'jquery-ui': 'jquery-ui/ui/widgets' 18 } 19 } 20}); 21//jQueryUIここまで 22 23module.exports = environment 24
そうするとエラーの行が変わりました。
application.jsの、「require ('jquery-ui')」
の行でエラーに変わりました。
application.js:56 Uncaught Error: Cannot find module 'jquery-ui' at webpackMissingModule (application.js:56) at Module.<anonymous> (application.js:56) at Module../app/javascript/packs/application.js (application.js:62) at __webpack_require__ (bootstrap:19) at bootstrap:83 at bootstrap:83
試しにこの行をコメントアウトしました。
//require ('jquery-ui')
そうすると最初のエラーに戻っちゃいました。
jquery.ui.widget.js:20 Uncaught Error: Cannot find module './version' at webpackMissingModule (jquery.ui.widget.js:20) at jquery.ui.widget.js:20 at Object../app/javascript/jquery.ui.widget.js (jquery.ui.widget.js:26) at __webpack_require__ (bootstrap:19) at Module.<anonymous> (application.js:57) at Module../app/javascript/packs/application.js (application.js:62) at __webpack_require__ (bootstrap:19) at bootstrap:83 at bootstrap:83
webpackやjQueryの経験がなくこれ以上分かりません。
どうすればjsファイルを正常に読み込みプラグインを利用出来るようになるでしょうか?
先輩方教えて下さい。宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。