Vanilla Rails 6.0: «команда error» веб-пакета «не найден» - PullRequest
3 голосов
/ 23 сентября 2019

Система:

Ruby: 2.6.3p62 (rvm)
Rails: 6.0
ОС: macOS 10.14.6

Настройка

A свежие 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 не должен устанавливать все необходимое автоматически?

Ответы [ 2 ]

2 голосов
/ 23 сентября 2019

РЕДАКТИРОВАТЬ:

Это одно из моих первых сообщений, так что извините, если я неправильно понял правила публикации.

Проблема связана с версией узла на вашем локальном компьютере.Когда вы создавали свое приложение 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 > flatten@1.0.2: I wrote this module a very long time ago; you should use something else.
[2/4] ?  Fetching packages...
error get-caller-file@2.0.5: 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 не хочет работать с.

Чтобы устранить проблему, сначала подтвердите версию узла, чтобы убедиться, что это не 9.xx:

node -v

Обновление узла(Я использую nvm, но на GitHub на узле Website есть другие способы).

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

Проверьте версию еще раз.Если это 12.10 или выше, у вас все должно быть в порядке.

Начните еще один новый проект рельсов, и он должен работать нормально.

Удачи!

1 голос
/ 25 сентября 2019

Я закончила удаление пряжи.После устранения ошибки, представленной в этом вопросе, у меня возникла еще одна проблема с пряжей.Я не знаю, должен ли я сделать кросс-пост моего решения, так как оно одно и то же.или просто ссылку на него

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

Надеюсь, это кому-нибудь поможет

...