Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

allow someway to control resource load order #249

Closed
vicapow opened this Issue · 3 comments

3 participants

Victor Aaron Tidwell Mike McNeil
Victor

this may be an issue with asset-rack but how can the load order of files be set? for example, i want to use bootstrap.js but it depends on jQuery to be loaded first. however, bootstrap.js comes before jquery.min.js when the files are served into the template (because b comes before j) the only way around this i found was to rename the files (to something like __jquery.min.js and _bootstrap.js)

Aaron Tidwell

#242 is the relevant existing issue.

I have taken to organizing my client side structure, a bit more rigidly - one project i have using angular + boostrap is using this:

|--core
|--ng
|----app
|----controllers
|------cms
|----directives
|----filters
|----services
|--vendor

vendor being dependancies (further sorted by library if needed, ex bootsrap folder and angular folder), core being library stuff and custom shims/etc, and ng being angular app stuff - it follows the angular-express-seed convention, just with folders instead of files

for a temporary fix for your example, you could do:

vendor/jquery/jquery.js
vendor/bootstrap/bootstrap.js

then set your asset config to:

module.exports.assets = {
    sequence: [
            'assets/js/vendor/jquery',
            'assets/js/vendor/bootstrap'
        ]
};

However. I tend to choose to cdn-host both jquery and bootstrap, and put those script tags into the document directly before my <%- assets.js() %> call - it might be worth it to just do that, especially if your scripts are already in a partial or your layout view.

Victor

oh, that's a good idea. thanks for sharing! (I'll close this issue since it's a duplicate.)

Victor vicapow closed this
Mike McNeil
Owner

I'm interested in the possibility of adding an option to push all js/images/css out to a cdn in production mode-- made an issue. It's a low priority optimization IMO; would be awesome, but there's more pressing features that will make our lives easier. If anyone has energy about it and wants to tackle, please feel free. See #252.

And thanks @Tidwell for jumping in to help here!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.