Code Monkey home page Code Monkey logo

Comments (9)

jmreidy avatar jmreidy commented on August 10, 2024

Discovered the issue. In RequirejsHelper#_javascript_path, the name is being passed as app; the digests manifest has it stored as app.js. If I tack on .js within that function, everything works correctly. So I think either that function needs to be updated, or Requirejs::Rails::Config#module_name_for needs to return mod['include']+.js in the almond case.

from requirejs-rails.

jwhitley avatar jwhitley commented on August 10, 2024

I'll see if I can repro from this description. Note that the gem dynamically adds the contents of rjs_manifest.yml to the Sprockets manifest at runtime, so there's no need or effect to having in manifest.yml.

from requirejs-rails.

jwhitley avatar jwhitley commented on August 10, 2024

AH! You're using almond? So presumably you're hitting this via _almond_include_tag then? If not, what's the stack trace look like when you're seeing this problem in _javascript_path?

A number of callers of _javascript_path guard for the .js case and amend name. Looks like I need to reconsider how that whole business works; looks a tad scattershot in hindsight.

from requirejs-rails.

jmreidy avatar jmreidy commented on August 10, 2024

Yep exactly. From going through the source, I think _almond_include_tag is the only case where the .js hasn't been appended.

from requirejs-rails.

jou avatar jou commented on August 10, 2024

Ran into that today without using almond: This happens not only in _almond_include_tag, but also in resolving paths for modules spec: https://github.com/jwhitley/requirejs-rails/blob/v0.8.2/app/helpers/requirejs_helper.rb#L55.

from requirejs-rails.

jwhitley avatar jwhitley commented on August 10, 2024

@jou, thanks for the report. None of the apps (either test or "real") that I have exhibit the problem as you've described it. I'd like to write a failing test for your case and get it fixed, but it's not immediately clear what the failure mode for your case is. Can you provide any tips on your configuration (e.g. requirejs.yml settings, etc.) that may be triggering this? Thanks!

from requirejs-rails.

jou avatar jou commented on August 10, 2024

I created a Rails app that exhibit the problem: https://gist.github.com/2834831 (clone it via git to see the contents, it's a complete Rails app).

It's doing a layered build, same as described in the README.

When you do a rake assets:precompile and then start it in production environment with RAILS_ENV=production rails s, it throws ActionView::Template::Error (appcommon isn't precompiled).

The problem is that requirejs_include_tag tries to resolve the path to the compiled assets for the defined modules in requirejs.yml to put them in the "paths" attribute of RequireJS config. But it does so without appending .js and Rails' asset helper gets confused.

I worked around by patching RequirejsHelper with https://gist.github.com/2834968. Maybe it's a better idea to appending .js if necessary to _javascript_path

from requirejs-rails.

giuliandrimba avatar giuliandrimba commented on August 10, 2024

No solution for this problem yet? :(

from requirejs-rails.

carsomyr avatar carsomyr commented on August 10, 2024

Hopefully we'll have almond support in the near to medium future. Please use #159 for further discussion.

from requirejs-rails.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.