Webpacker не может найти приложение на Heroku - PullRequest
0 голосов
/ 15 марта 2020

Я получаю следующую ошибку при развертывании моего приложения на heroku.

Он отлично работает на моем локальном сервере в производственной среде, когда я запускаю RAILS_ENV = production rails s -p 3000.

Так что, похоже, ошибка возникает только в heroku.

 Error during failsafe response: Webpacker can't find application in  /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:
    {
    }

Ошибка исходит из строки:

  <%= javascript_pack_tag 'application' %> 

в приложении / views / layouts / application. html .erb file.

Если я удалите строку, которую загружает сайт, но текстовый редактор действий не работает.

Я попытался запустить следующее:

rm -rf node_modules
rails assets:clobber
yarn
rails assets:precompile

и

rails webpacker:install

, как описано здесь: Webpacker не может найти приложение , но ничего не работает

Я уже установил значение web packer.yml в true, и это мой файл config / webpacker.yml

# 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:
  - .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

# Extract and emit a css file
  extract_css: true

# Cache manifest.json for performance
 cache_manifest: true

public / packs / manifest. json:

{
  "application.js": "/packs/js/application-f887cd8adbcc18cacc27.js",
  "application.js.map": "/packs/js/application-f887cd8adbcc18cacc27.js.map",
  "entrypoints": {
    "application": {
      "js": [
        "/packs/js/application-f887cd8adbcc18cacc27.js"
      ],
      "js.map": [
        "/packs/js/application-f887cd8adbcc18cacc27.js.map"
      ]
    }
  }
}

1 Ответ

0 голосов
/ 16 марта 2020

Проверьте ваш .gitignore файл . Вы можете обнаружить, что файл /app/public/packs/manifest.json игнорируется (и не распознается как измененный файл).

ИЛИ

проверяет, существует ли файл на heroku или нет, с помощью следующих команд: -

heroku login
heroku run bash -a APPNAME
$ cat app/public/packs/manifest.json
...