web-dev-qa-db-ja.com

バニラRails 6.0: "エラーコマンド" webpack "が見つかりません"

システム:

Ruby:2.6.3p62(rvm)
レール:6.0
OS:macOS 10.14.6

セットアップ

新しいRails 6.0アプリケーション:

$ Rails new testshop2
$ cd testshop2
$ Rails g controller Page index
$ Rails s
=> Booting Puma
=> Rails 6.0.0 application starting in development 
=> Run `Rails server --help` for more startup options
Puma starting in single mode...
* Version 3.12.1 (Ruby 2.6.3-p62), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop

http:// localhost:3000/page/index 」を参照すると、システムはこのエラーを通過します。

Started GET "/page/index" for ::1 at 2019-09-23 17:06:12 +0200
  (0.4ms)  SELECT sqlite_version(*)
Processing by PageController#index as HTML
  Rendering page/index.html.erb within layouts/application
  Rendered page/index.html.erb within layouts/application (Duration: 1.8ms | Allocations: 206)
[Webpacker] Compiling…
[Webpacker] Compilation failed:
error Command "webpack" not found.

Completed 500 Internal Server Error in 2021ms (ActiveRecord: 0.0ms | Allocations: 640080)



ActionView::Template::Error (Webpacker can't find application in /Users/stefan/Github/sandbox/testshop2/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:
{
}
):
    6:     <%= csp_meta_tag %>
    7: 
    8:     <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    9:     <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
    10:   </head>
    11: 
    12:   <body>

app/views/layouts/application.html.erb:9

どうすれば修正できますか? error Command "webpack" not found.ですが、Rails必要なものすべてを自動的にインストールしないでください。

9
wintermeyer

編集:

これは私の最初の投稿の1つなので、投稿規則が間違っていても許してください。

問題は、ローカルコンピュータのノードのバージョンに起因します。 Railsアプリを作成したとき、おそらく次のようなエラーが発生しました:

The JavaScript app source directory already exists
   apply  /Users/mconiaris/.rbenv/versions/2.6.4/lib/Ruby/gems/2.6.0/gems/webpacker-4.0.7/lib/install/binstubs.rb
  Copying binstubs
       exist    bin
      create    bin/webpack
      create    bin/webpack-dev-server
      append  .gitignore
Installing all JavaScript dependencies [4.0.7]
         run  yarn add @Rails/webpacker from "."
yarn add v1.17.3
info No lockfile found.
[1/4] ????  Resolving packages...
warning @Rails/webpacker > postcss-preset-env > postcss-color-functional-notation > postcss-values-parser > [email protected]: I wrote this module a very long time ago; you should use something else.
[2/4] ????  Fetching packages...
error [email protected]: The engine "node" is incompatible with this module. Expected version "6.* || 8.* || >= 10.*". Got "9.4.0"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/add for documentation about this command.

私の場合、コンピュータにノードのバージョン9.4.0がインストールされていましたが、それはget-caller-fileパッケージが処理したくないバージョンの1つでした。

問題を解決するには、まずノードのバージョンを確認して、それが9.x.xではないことを確認します。

node -v

ノードを更新します(nvmを使用していますが、 node Webサイトに GitHubの他の方法 があります)。

nvm install node # "node" is an alias for the latest version

もう一度バージョンを確認してください。 12.10以上であれば、問題はありません。

別の真新しいRails=プロジェクトを開始すれば、問題なく動作するはずです。

幸運を!

4
Mike

結局糸をはずしてしまいました。この質問で示されたエラーを解決した後、私は糸に別の問題がありました。それは同じなので、自分の解決策をクロスポストする必要があるかどうかわかりません。または単にそれにリンクする

https://stackoverflow.com/a/58100373/683982

これが誰かを助けることを願っています

1
Mathieu J.

この問題は、新しい6.0インストールでも発生しました。私の場合、私の知る限り、ノードや糸とは関係ありませんでした。 package.jsonにwebpackの記述がないことに気付いたので、yarn add webpackと再試行しました。コンパイルしたという次のメッセージが表示されましたが、ページはまだ読み込まれませんでした。

[Webpacker] Compiled all packs in /vagrant/revmtg/RevMtg/public/packs
[Webpacker] One CLI for webpack must be installed. These are recommended choices, delivered as separate packages:
 - webpack-cli (https://github.com/webpack/webpack-cli)
   The original webpack full-featured CLI.

だから私はyarn add webpack-cli。その後、Error: Cannot find module '@Rails/webpacker'

だから私はnode_modulesフォルダーを実行してからbundle exec Rails webpacker:install。その後、ようやく機能しました。

0
AFOC