前提・実現したいこと
プロゲートでrails学習が終了したので、
ローカル環境で同じ実行できるようにしたい。
発生している問題・エラーメッセージ
application.html.erbで『<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>』でエラー起きる。
エラーメッセージ
[Webpacker] Compiling... [Webpacker] Compilation failed: C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/webpacker-4.3.0/lib/webpacker/webpack_runner.rb:23:in `exec': No such file or directory - C:\サブデスクトップ\Ruby\ruby_lesson\tweet_app\node_modules\.bin/webpack (Errno::ENOENT) from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/webpacker-4.3.0/lib/webpacker/webpack_runner.rb:23:in `block in run' from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/webpacker-4.3.0/lib/webpacker/webpack_runner.rb:22:in `chdir' from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/webpacker-4.3.0/lib/webpacker/webpack_runner.rb:22:in `run' from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/webpacker-4.3.0/lib/webpacker/runner.rb:6:in `run' from ./bin/webpack:17:in `block in <main>' from ./bin/webpack:16:in `chdir' from ./bin/webpack:16:in `<main>' Completed 500 Internal Server Error in 1915ms (ActiveRecord: 0.3ms | Allocations: 11723) ActionView::Template::Error (Webpacker can't find application in C:/サブデスクトップ/Ruby/ruby_lesson/tweet_app/public/packs/manifest.json. Possible causes: 1. You want to set webpacker.yml value of compile to true for your environment unless you are using the `webpack -w` or the webpack-dev-server. 2. webpack has not yet re-run to reflect updates. 3. You have misconfigured Webpacker's config/webpacker.yml file. 4. Your webpack configuration is not creating a manifest. Your manifest contains: { } ): 7: 8: <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> 9: <%# 10行目でエラーになるため、コメントアウト %> 10: <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> 11: </head> 12: 13: <body> app/views/layouts/application.html.erb:10
該当のソースコード
【application.html.erb】 <!DOCTYPE html> <html> <head> <title>TweetApp</title> <%= csrf_meta_tags %> <%= csp_meta_tag %> <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%# 10行目でエラーになるため、コメントアウト %> <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %> </head> <body> <header> <div class="header-logo"> <%= link_to("TweetApp","/") %> </div> <ul class="header-menus"> <li> <%= link_to("TweetAppとは","/about") %> </li> <li> <%= link_to("投稿一覧","/posts/index") %> </li> <li> <%= link_to("新規投稿","/posts/new") %> </li> </ul> </header> <!-- flashは1度だけ表示されるメッセージ --> <% if %> <div class="flash"> <%= flash[:notice] %> </div> <% end %> <!-- 各ビューファイルは以下のyieldに代入され、application.html.erbの一部となる --> <%= yield %> </body> </html>
試したこと
1. You want to set webpacker.yml value of compile to true for your environment unless you are using the `webpack -w` or the webpack-dev-server. 2. webpack has not yet re-run to reflect updates. 3. You have misconfigured Webpacker's config/webpacker.yml file. 4. Your webpack configuration is not creating a manifest. Your manifest contains:
下記のエラーアドバイスの中から「1」のみ試しました。
ですが、正しく修正できたかわかりません。
【1の修正内容】
※webpacker.yml...下から3行目
# Note: You must restart bin/webpack-dev-server for changes to take effect default: &default source_path: app/javascript source_entry_path: packs public_root_path: public public_output_path: packs cache_path: tmp/cache/webpacker check_yarn_integrity: false webpack_compile_output: true # Additional paths webpack should lookup modules # ['app/assets', 'engine/foo/app/assets'] resolved_paths: [] # Reload manifest.json on all requests so we reload latest compiled packs cache_manifest: false # Extract and emit a css file extract_css: false static_assets_extensions: - .jpg - .jpeg - .png - .gif - .tiff - .ico - .svg - .eot - .otf - .ttf - .woff - .woff2 extensions: - .svelte - .mjs - .js - .sass - .scss - .css - .module.sass - .module.scss - .module.css - .png - .svg - .gif - .jpeg - .jpg development: <<: *default compile: true # Verifies that correct packages and versions are installed by inspecting package.json, yarn.lock, and node_modules check_yarn_integrity: true # Reference: https://webpack.js.org/configuration/dev-server/ dev_server: https: false host: localhost port: 3035 public: localhost:3035 hmr: false # Inline should be set to true if using HMR inline: true overlay: true compress: true disable_host_check: true use_local_ip: false quiet: false pretty: false headers: 'Access-Control-Allow-Origin': '*' watch_options: ignored: '**/node_modules/**' test: <<: *default compile: true # Compile test packs to a separate directory public_output_path: packs-test production: <<: *default # Production depends on precompilation of packs prior to booting for performance. compile: true #←ここを「false」から「true」に修正 # Extract and emit a css file extract_css: true # Cache manifest.json for performance cache_manifest: true
補足情報(FW/ツールのバージョンなど)
windows 10
Rails 6.0.3.3
yarn 1.22.5
node v12.18.3
npm 6.14.6
対応1[①コンパイルが行われていない。]
リンク先.手順「rm -rf bin/webpack*」を作成中プロジェクトの階層で実行しましたが、
'rm' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
上記のエラーで実行できませんでした。
やりたいことはwebpackerの再インストールなので、
「作成中プロジェクト\bin\webpack」のファイルを削除し、再実行をしましたが、
webpackが無いとのエラーが出たので、ファイルと戻し、
リンク先.手順「rails webpacker:install」「RAILS_ENV=test bundle exec rails webpacker:compile」の順に実行したところ、
'RAILS_ENV'に関してのエラーがでましたので、「bundle exec rails webpacker:compile」のみを実行しました。
結果、下記のエラーが出ている状況です。
Compiling... Compilation failed: C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/webpacker-4.3.0/lib/webpacker/webpack_runner.rb:23:in `exec': No such file or directory - C:\サブデスクトップ\Ruby\ruby_lesson\tweet_app\node_modules\.bin/webpack (Errno::ENOENT) from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/webpacker-4.3.0/lib/webpacker/webpack_runner.rb:23:in `block in run' from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/webpacker-4.3.0/lib/webpacker/webpack_runner.rb:22:in `chdir' from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/webpacker-4.3.0/lib/webpacker/webpack_runner.rb:22:in `run' from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/webpacker-4.3.0/lib/webpacker/runner.rb:6:in `run' from ./bin/webpack:17:in `block in <main>' from ./bin/webpack:16:in `chdir' from ./bin/webpack:16:in `<main>'
対応2[②yarnが古くてコンパイルが止まっている。]
リンク先.解決策「brew install yarn」を実行しましたが、
'brew' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。
上記のエラーで実行できませんでした。
Webで調べたところ、下記のコマンドでUPDATEをおこないました。
npm uninstall yarn -g npm install yarn -g
その後、「bundle exec rails webpacker:compile」を実行しましたが、
①と同じエラーが出る状況です。
回答1件
あなたの回答
tips
プレビュー