#ruby-on-rails #heroku
Вопрос:
Я осматривался, пытаясь понять, почему Heroku не «принимает» мое развертывание и ищет помощи. Я не сделал ничего существенного, просто добавил загрузочную версию и немного отредактировал. Мое первое развертывание прошло успешно, но следующее провалилось. Я где-то читал, что это ошибка, поэтому я добавил папку src и сделал index.js файл. Запустил обновление пряжи, запустил установку пакета, если мне нужно было что — то обновить. посмотрел на мою babel.config.js но ничего не выделялось (я действительно не знаю, что искать) Любая помощь будет очень признательна!
Ошибка:
[4/4] Building fresh packages...
remote: Done in 25.62s.
remote: I, [2021-06-04T21:52:45.128952 #360] INFO -- : Writing /tmp/build_5fa23b33/public/assets/application-43e83168d1536a5883821e3cc8ec1131ee502acb6d26a77dd45b93ad11dda098.css
remote: I, [2021-06-04T21:52:45.129249 #360] INFO -- : Writing /tmp/build_5fa23b33/public/assets/application-43e83168d1536a5883821e3cc8ec1131ee502acb6d26a77dd45b93ad11dda098.css.gz
remote: I, [2021-06-04T21:52:45.129462 #360] INFO -- : Writing /tmp/build_5fa23b33/public/assets/custom-91d5d37298ccb7c5bf6e028899e879468125e1aededc57df093f84b618cde2bd.css
remote: I, [2021-06-04T21:52:45.129719 #360] INFO -- : Writing /tmp/build_5fa23b33/public/assets/custom-91d5d37298ccb7c5bf6e028899e879468125e1aededc57df093f84b618cde2bd.css.gz
remote: Compiling...
remote: Compilation failed:
remote: Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
remote: The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
remote: ["@babel/plugin-proposal-private-methods", { "loose": true }]
remote: to the "plugins" section of your Babel config.
remote: ["@babel/plugin-proposal-private-methods", { "loose": true }]
remote: to the "plugins" section of your Babel config.
remote: Though the "loose" option was set to "false" in your @babel/preset-env config, it will not be used for @babel/plugin-proposal-private-methods since the "loose" mode option was set to "true" for @babel/plugin-proposal-class-properties.
remote: The "loose" option must be the same for @babel/plugin-proposal-class-properties, @babel/plugin-proposal-private-methods and @babel/plugin-proposal-private-property-in-object (when they are enabled): you can silence this warning by explicitly adding
remote: ["@babel/plugin-proposal-private-methods", { "loose": true }]
remote: to the "plugins" section of your Babel config.
remote:
remote:
remote: !
remote: ! Precompiling assets failed.
remote: !
remote: ! Push rejected, failed to compile Ruby app.
remote:
remote: ! Push failed
remote: Verifying deploy...
remote:
remote: ! Push rejected to afternoon-lf-49433.
remote:
To https://git.heroku.com/afternoon-lf-49433.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs
babel.config.js
module.exports = function(api) { var validEnv = ['development', 'test', 'production'] var currentEnv = api.env() var isDevelopmentEnv = api.env('development') var isProductionEnv = api.env('production') var isTestEnv = api.env('test')
if (!validEnv.includes(currentEnv)) {
throw new Error(
'Please specify a valid `NODE_ENV` or '
'`BABEL_ENV` environment variables. Valid values are "development", '
'"test", and "production". Instead, received: '
JSON.stringify(currentEnv)
'.'
) }
return {
presets: [
isTestEnv amp;amp; [
'@babel/preset-env',
{
targets: {
node: 'current'
}
}
],
(isProductionEnv || isDevelopmentEnv) amp;amp; [
'@babel/preset-env',
{
forceAllTransforms: true,
useBuiltIns: 'entry',
corejs: 3,
modules: false,
exclude: ['transform-typeof-symbol']
}
]
].filter(Boolean),
plugins: [
'babel-plugin-macros',
'@babel/plugin-syntax-dynamic-import',
isTestEnv amp;amp; 'babel-plugin-dynamic-import-node',
'@babel/plugin-transform-destructuring',
[
'@babel/plugin-proposal-class-properties',
{
loose: true
}
],
[
'@babel/plugin-proposal-object-rest-spread',
{
useBuiltIns: true
}
],
[
'@babel/plugin-transform-runtime',
{
helpers: false
}
],
[
'@babel/plugin-transform-regenerator',
{
async: false
}
]
].filter(Boolean) } }
Specials Controller
class SpecialsController <ApplicationController
before_action :set_special, only: [:show, :edit, :update, :destroy]
def show
end
def index
@specials = Special.all
end
def new
@special = Special.new
end
def edit
end
def create
@special = Special.new(special_params)
if @special.save
flash[:notice] = "Special was created successfully!"
redirect_to @special
else
render 'new'
end
end
def update
if @special.update(special_params)
flash[:notice] = "Special was updated!"
redirect_to @special
else
render 'edit'
end
end
def destroy
@special.destroy
redirect_to specials_path
end
def day_of_week
t = Time.now
t.strftime("%A")
end
helper_method :day_of_week
private
def set_special
@special = Special.find(params[:id])
end
def special_params
params.require(:special).permit(:day, :title, :description, :price)
end
end
index.html.erb
<h1 class="text-center mt-4 text-info">Specials for <%= day_of_week %></h1> <div class= "container"> <div class="row"> <% @specials.each do |special| %> <div class="col-md-4 mt-4"> <div class="card text-center shadow p-3 mb-5 bg-white rounded" style="width: 18rem;"> <div class="card-body "> <h5 class="card-title"><%= link_to special.title, special_path(special), class: "text-success" %></h5> <h6 class="card-subtitle mb-2 text-muted font-italic">Applebees</h6> <p class="card-text"><%= truncate(special.description, length: 50) %></p> </div> </div> </div> <% end %> </div> </div> <table> <thead> <tr> <th>Day</th> <th>Title</th> <th>Description</th> <th>Price</th> <th colspan ="3">Actions</th> </tr> </thead> <tbody> <% @specials.each do |special| %> <tr> <td><%= special.day %></td> <td><%= special.title %></td> <td><%= special.description %></td> <td>
lt;%= special.price %></td>
<td><%= link_to 'Show', special_path(special)%></td>
<td><%= link_to 'Edit', edit_special_path(special)%></td>
<td><%= link_to "Delete", special_path(special), method: :delete, data: { confirm: "Are you sure?"} %></td></tr>
<% end%>
</tbody></table>
<p>
<%= link_to 'Add a Special', new_special_path %>
</p>
Gemfileremote: https://rubygems.org/ specs: actioncable (6.1.3.2) actionpack (= 6.1.3.2) activesupport (= 6.1.3.2) nio4r (~> 2.0) websocket-driver (>= 0.6.1) actionmailbox (6.1.3.2) actionpack (= 6.1.3.2) activejob (= 6.1.3.2) activerecord (= 6.1.3.2) activestorage (= 6.1.3.2) activesupport (= 6.1.3.2) mail (>= 2.7.1) actionmailer (6.1.3.2) actionpack (= 6.1.3.2) actionview (= 6.1.3.2) activejob (= 6.1.3.2) activesupport (= 6.1.3.2) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) actionpack (6.1.3.2) actionview (= 6.1.3.2) activesupport (= 6.1.3.2) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) actiontext (6.1.3.2) actionpack (= 6.1.3.2) activerecord (= 6.1.3.2) activestorage (= 6.1.3.2) activesupport (= 6.1.3.2) nokogiri (>= 1.8.5) actionview (6.1.3.2) activesupport (= 6.1.3.2) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) activejob (6.1.3.2) activesupport (= 6.1.3.2) globalid (>= 0.3.6) activemodel (6.1.3.2) activesupport (= 6.1.3.2) activerecord (6.1.3.2) activemodel (= 6.1.3.2) activesupport (= 6.1.3.2) activestorage (6.1.3.2) actionpack (= 6.1.3.2) activejob (= 6.1.3.2) activerecord (= 6.1.3.2) activesupport (= 6.1.3.2) marcel (~> 1.0.0) mini_mime (~> 1.0.2) activesupport (6.1.3.2) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) zeitwerk (~> 2.3) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) bindex (0.8.1) bootsnap (1.7.5) msgpack (~> 1.0) builder (3.2.4) byebug (11.1.3) capybara (3.35.3) addressable mini_mime (>= 0.1.3) nokogiri (~> 1.8) rack (>= 1.6.0) rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) childprocess (3.0.0) concurrent-ruby (1.1.8) crass (1.0.6) erubi (1.10.0) ffi (1.15.1-x64-mingw32) globalid (0.4.2) activesupport (>= 4.2.0) i18n (1.8.10) concurrent-ruby (~> 1.0) jbuilder (2.11.2) activesupport (>= 5.0.0) loofah (2.9.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) marcel (1.0.1) method_source (1.0.0) mini_mime (1.0.3) minitest (5.14.4) msgpack (1.4.2) nio4r (2.5.7) nokogiri (1.11.6-x64-mingw32) racc (~> 1.4) pg (1.2.3-x64-mingw32) public_suffix (4.0.6) puma (5.3.2) nio4r (~> 2.0) racc (1.5.2) rack (2.2.3) rack-mini-profiler (2.3.2) rack (>= 1.2.0) rack-proxy (0.7.0) rack rack-test (1.1.0) rack (>= 1.0, < 3) rails (6.1.3.2) actioncable (= 6.1.3.2) actionmailbox (= 6.1.3.2) actionmailer (= 6.1.3.2) actionpack (= 6.1.3.2) actiontext (= 6.1.3.2) actionview (= 6.1.3.2) activejob (= 6.1.3.2) activemodel (= 6.1.3.2) activerecord (= 6.1.3.2) activestorage (= 6.1.3.2) activesupport (= 6.1.3.2) bundler (>= 1.15.0) railties (= 6.1.3.2) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) rails-html-sanitizer (1.3.0) loofah (~> 2.3) railties (6.1.3.2) actionpack (= 6.1.3.2) activesupport (= 6.1.3.2) method_source rake (>= 0.8.7) thor (~> 1.0) rake (13.0.3) regexp_parser (2.1.1) rubyzip (2.3.0) sass-rails (6.0.0) sassc-rails (~> 2.1, >= 2.1.1) sassc (2.4.0-x64-mingw32) ffi (~> 1.9) sassc-rails (2.1.2) railties (>= 4.0.0) sassc (>= 2.0) sprockets (> 3.0) sprockets-rails tilt selenium-webdriver (3.142.7) childprocess (>= 0.5, < 4.0) rubyzip (>= 1.2.2) semantic_range (3.0.0) sprockets (4.0.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) sprockets-rails (3.2.2) actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) sqlite3 (1.4.2) thor (1.1.0) tilt (2.0.10) turbolinks (5.2.1) turbolinks-source (~> 5.2) turbolinks-source (5.2.0) tzinfo (2.0.4) concurrent-ruby (~> 1.0) tzinfo-data (1.2021.1) tzinfo (>= 1.0.0) web-console (4.1.0) actionview (>= 6.0.0) activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) webdrivers (4.6.0) nokogiri (~> 1.6) rubyzip (>= 1.3.0) selenium-webdriver (>= 3.0, < 4.0) webpacker (5.4.0) activesupport (>= 5.2) rack-proxy (>= 0.6.1) railties (>= 5.2) semantic_range (>= 2.3.0) websocket-driver (0.7.4) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) xpath (3.2.0) nokogiri (~> 1.8) zeitwerk (2.4.2) PLATFORMS x64-mingw32 DEPENDENCIES bootsnap (>= 1.4.4) byebug capybara (>= 3.26) jbuilder (~> 2.7) pg puma (~> 5.0) rack-mini-profiler (~> 2.0) rails (~> 6.1.3, >= 6.1.3.2) sass-rails (>= 6) selenium-webdriver sqlite3 (~> 1.4) turbolinks (~> 5) tzinfo-data web-console (>= 4.1.0) webdrivers webpacker (~> 5.0) RUBY VERSION ruby 2.7.3p183 BUNDLED WITH 2.1.4
Ответ №1:
Ошибка говорит, что loose
это false
для предустановки-env и true
для plugin-proposal-class-properties
. Я вижу, что у вас есть "loose": true
для plugin-proposal-class-properties
в вашей конфигурации babel для plugin-proposal-class-properties
конфигурации, может быть, вы тоже можете попробовать добавить "loose": true
в preset-env
конфигурацию:
(isProductionEnv || isDevelopmentEnv) amp;amp; [
'@babel/preset-env',
{
forceAllTransforms: true,
useBuiltIns: 'entry',
corejs: 3,
modules: false,
exclude: ['transform-typeof-symbol'],
loose: true
}
]
Комментарии:
1. Я никогда раньше этого не менял. Нормально ли, что я должен это изменить, или это может быть из-за того, что я неправильно написал метод?
2. Это ненормально, если вы не изменили ничего, связанного с активами, и это также совершенно не связано с изменением метода контроллера. Ты все рассказал? блокировка изменения файла между развертываниями? работает ли развертывание, если вы развернете предыдущую версию кода, которая работала раньше? вы должны сравнить коммит, который работает, с коммитом, который не проверяет различия, для нас невозможно узнать, что изменилось, так как теперь вы показываете разницу, просто какой-то текущий код. Может быть, вы действительно что-то изменили по ошибке? вы сказали, что добавили загрузчик, затем попробовали обновить пряжу, непонятно, что изменилось