ActionView :: Template :: Error: Webpacker не может найти приложение в /app/public/packs/manifest.json при его развертывании в Gitlab с использованием ci / cd autodevops
Он отлично работает локально, но получает эту ошибку во время конвейеров, работающих с CI/CD на этапе тестирования, когда он развертывается в Gitlab:
Webpacker::Manifest::MissingEntryError: 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: { }
Вот несколько строк из файла application.html:
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %> <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
а мои таблицы стилей - это файлы.scss, а в проекте нет файла.css.
Это мой webpacker.yml:
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: true 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 the precompilation of packs prior to booting for performance. compile: false # Extract and emit a css file extract_css: true # Cache manifest.json for performance cache_manifest: true
Я что-нибудь упускаю?
0 ответов
Для легкого решения; Создайте
app/javascript/stylesheets
папку и добавьте в эту папку пустую
application.scss
файл
после открытия
app/javascript/packs/application.js
файл и импортируйте добавленный файл в свой js-файл пакета с помощью;
import '../stylesheets/application';
Пусть webpacker снова скомпилирует все файлы с файлом css/scss.