Closed guingois closed 8 months ago
Sorry to hear it! It looks like uglify is choking on some of the GraphiQL assets. You could debug further by trying to figure out which minified code is causing problems. Also, you could try adjusting the version/settings of uglify, or by updating our GraphiQL version (if a new one is available?) to see if the newer version doesn't have that trouble.
I've tried updating GraphiQL (using the dedicated Rake task), and the issue remains.
I've also tried requiring different combinations of assets in graphiql-rails' application.js
. There isn't a single asset responsible for the failure: it happens only when the compilation requires some specific combinations, and each asset taken separately can be compiled without errors. Therefore I'll try to focus the debugging on Uglifier, rather than on graphiql-rails or GraphiQL.
Thanks for your help, feel free to close the issue if you think it's no longer relevant to this project.
I'm also experiencing this issue ^
It works for me until version 1.4.8
of graphiql-rails
and fails for 1.4.9
and 1.4.10
.
So some changes in the path graphiql-rails/app/assets/javascripts/graphiql/rails/
may cause the issue.
Ruby: 2.5.1
Rails: 5.2.0
uglifier: 4.1.10
I encountered the same problem with graphiql-rails
1.4.10
. Falling back to 1.4.8
works around the problem for me.
TLDR: change config/environments/production.rb
(and config/environments/staging.rb
) from config.assets.js_compressor = :uglifier
to config.assets.js_compressor = Uglifier.new(harmony: true)
fix this issue
More details: From https://github.com/rmosolgo/graphiql-rails/commit/3eb2491475823d332c314611e73288200998c566, we changed reactjs from 16.0.0 to 16.2.0 which cause this https://github.com/facebook/react/issues/12434
I tested with @savybrandt comment to change production.rb from config.assets.js_compressor = :uglifier
to config.assets.js_compressor = Uglifier.new(harmony: true)
and it is working fine.
Thanks @erwanthomas for the Dockerfile, very helpful to debug and change the gem version around, this is the modified version to show it works.
FROM ruby:2.5.1-alpine3.7
RUN apk add --no-cache build-base sqlite-dev tzdata nodejs=8.9.3-r1
ENV RAILS_VERSION 5.2.0
RUN gem install rails --version "$RAILS_VERSION"
ENV RAILS_ENV production
RUN rails new --database=sqlite3 dummy_app && cd dummy_app
WORKDIR /dummy_app
RUN echo 'gem "graphiql-rails", "1.4.10"' >> Gemfile && bundle
RUN sed -i -e 's/config.assets.js_compressor = :uglifier/config.assets.js_compressor = Uglifier.new(harmony: true) /g' config/environments/production.rb
RUN bundle exec rake assets:precompile
Setting config.assets.js_compressor = Uglifier.new(harmony: true)
also worked from me.
It works for me until version
1.4.8
ofgraphiql-rails
and fails for1.4.9
and1.4.10
. So some changes in the pathgraphiql-rails/app/assets/javascripts/graphiql/rails/
may cause the issue. Ruby: 2.5.1 Rails: 5.2.0 uglifier: 4.1.10
It works for me!
Hey, I hope that the fix recommended above worked. If anyone encounters this on a new version, please open a new issue!
RAILS_ENV=development bundle exec rake assets:precompile
, then assets compilation succeeds:RAILS_ENV=production bundle exec rake assets:precompile
, then assets compilation fails with the following error:The error doesn't happen if I remove
gem "graphiql-rails"
in the Gemfile.