Don't know how to build task 'webpacker:install:react'
解決したいこと
既存のrailsアプリにreact_on_railsを導入しようとしています。
Can't resolve 'react-on-rails' in '/myapp/app/javascript/packs'
と言われたので、bundle exec rails webpacker:install:react を忘れていたからかと思い、実行しようとしたところ、Don't know how to build task 'webpacker:install:react' と言われて実行できず困っています。
発生している問題・エラー
docker-compose run web bundle exec rails webpacker:install:react
[+] Running 1/0
- Container app710_db_1 Running 0.0s
rails aborted!
Don't know how to build task 'webpacker:install:react' (See the list of available tasks with `rails --tasks`)
該当するソースコード
FROM ruby:2.7.0
RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
apt-get update -qq && apt-get install -y nodejs postgresql-client vim && \
apt-get install -y yarn && \
apt-get install -y imagemagick && \
apt-get install -y libvips-tools && \
apt-get install -y locales
RUN curl -sL https://deb.nodesource.com/setup_7.x | bash - && \
apt-get install nodejs
RUN mkdir /myapp
WORKDIR /myapp
COPY Gemfile /myapp/Gemfile
COPY Gemfile.lock /myapp/Gemfile.lock
RUN bundle install
COPY . /myapp
# Add a script to be executed every time the container starts.
COPY entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/entrypoint.sh
ENTRYPOINT ["entrypoint.sh"]
EXPOSE 3000
# Start the main process.
CMD ["rails", "server", "-b", "0.0.0.0"]
自分で試したこと
webpacker6からは、 "webpacker:install:react" というコマンドがない...?
https://github.com/rails/webpacker/pull/2802/files#diff-732190763be8d3bbace9bb6cf378c147a0adbeeb757e055cd3eae696c1cf866bL13
2020年11月21日以降の記事をみないといけない??
この状態でrailsサーバーを立ち上げた場合
Webpacker can't find hello-world-bundle.js in /myapp/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.
意味
1,webpack -w
またはwebpack-dev-serverを使用していない限り、ご使用の環境でcompileのwebpacker.yml値をtrueに設定する必要があります。
2,webpackは、更新を反映するためにまだ再実行されていません。
3,Webpackerのconfig / webpacker.ymlファイルを誤って構成しました。
4,Webpack構成がマニフェストを作成していません。