Image

Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Welcome to Software Development on Codidact!

Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.

Rails 6.1, unbelievable assets-precompile time for a smallish project

+4
−0

I have an old Ruby on Rails project currently running on Rails 6.1. It isn't very large. I have got the old asset pipeline, 2.7 MB of Javascript in a node_modules folder and 3.7 MB of files in the asset folder.

When I build my Docker image, precompiling assets takes nearly two hours. Yes, two hours. I have no clue why, as the project isn't large. I have larger projects with exactly the same setup where the precompile time is a couple of minutes.

I have found that I can run rake assets:precompile in verbose mode and with a flag DEBUG=1. Neither produces any output worth watching. The first outputs a couple of setting values and then precompiles assets without any feedback. The second only produces a list of files it writes when it finishes.

What could cause this unbelievable build time? Is there any way to debug it? Some place where I could put in statements like puts 'processing xyz' to see which files cause that incredible compile time? Can I just edit the code in /Users/marion/.rvm/gems/ruby-3.2.3/gems/sprockets-rails-3.5.2/lib/sprockets/rails/task.rb? If so, what would be sensible edits?

History

1 comment thread

The culprit: unorganized imports (1 comment)

1 answer

+1
−0

There are several things to check: Unused images, Javascript or CSS styles. Importing large libraries like Bootstrap several times can slow things down very much.

In my case it was a SCSS structure that had grown over nearly ten years and caused the Bootstrap styles to be imported over ten times through badly organized imports.

This does not cause problems when precompiling assets in development, because the precompiler caches partial compilation results. However, when executing a Dockerfile the build process starts with an empty cache. The resulting compiled assets will also be very much larger than necessary.

So: Check your import statements.

History

0 comment threads

Sign up to answer this question »