jwhitley / requirejs-rails

RequireJS support for your Rails 3 or 4 application
MIT License
592 stars 202 forks source link

Paths don't loaded when Rails server started as development #212

Closed lancedikson closed 9 years ago

lancedikson commented 9 years ago

Hi! So, I have a problem: paths from requirejs.yml do not loaded when I start Rails server and dependencies do not resolve. I use Bower as package manager for my project and all third-party files are locate at vendor/assets/bower. They are available for Assets Pipeline — I made sure about it. So, I have this requirejs.yml:

paths:
  jquery: "jquery/dist/jquery"
  foundation: "foundation/js/foundation"
  modernizr: "modernizr/modernizr"
  app: "js/application"
shim:
  foundation:
    deps: ['jquery', 'modernizr']
optimize: 'none'
modules:
  - name: 'common'
    include: ['jquery', 'foundation', 'modernizr']
  - name: 'application'
    exclude: ['common']
  - name: 'admin/app'
    exclude: ['common']
priority: ['common']

My common file is empty. Whether it should contain any code? In the official Require's example-multipage-shim common include require.config(). Should I do something like this?

So, I have the next code loaded at page with the requirejs.yml above:

<script src="/assets/require-4bbd1abb9811b646f2aea5d348d28770.js"></script><script>require.config({"baseUrl":"/assets","paths":{"common":"/assets/common-64e62ddc273c2f5847f30d698ca14b67","application":"/assets/application-4f1870d7adc38f35ff024c98eb5b71a4","admin/app":"/assets/admin/app-4f1870d7adc38f35ff024c98eb5b71a4"},"priority":["common"],"shim":{"foundation":{"deps":["jquery","modernizr"]}}}); require(["admin/app"]);</script>

Paths do not include paths that defined at requirejs.yml. How I can fix it? Maybe I do something wrong. Give me advice please, if that is it.

lancedikson commented 9 years ago

And I have another one problem. Task assets:precompile creates four file instead two as must be:

➜ ~/Projects/shemberg-rails (feature/rjs) rake assets:precompile
/Users/lancedikson/.rvm/rubies/ruby-2.2.0/bin/ruby /Users/lancedikson/.rvm/gems/ruby-2.2.0/bin/rake requirejs:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
I, [2015-02-08T18:14:13.525743 #33837]  INFO -- : Writing /Users/lancedikson/Projects/shemberg-rails/public/assets/application-28ccd3011516b2f1cdd829217c515625.css
I, [2015-02-08T18:14:13.628326 #33837]  INFO -- : Writing /Users/lancedikson/Projects/shemberg-rails/public/assets/main-403ab1369687c21af13b7e1351e56472.css
I, [2015-02-08T18:14:13.714544 #33837]  INFO -- : Writing /Users/lancedikson/Projects/shemberg-rails/public/assets/admin/app-4f1870d7adc38f35ff024c98eb5b71a4.js
I, [2015-02-08T18:14:13.719906 #33837]  INFO -- : Writing /Users/lancedikson/Projects/shemberg-rails/public/assets/application-4f1870d7adc38f35ff024c98eb5b71a4.js
I, [2015-02-08T18:14:13.724558 #33837]  INFO -- : Writing /Users/lancedikson/Projects/shemberg-rails/public/assets/common-64e62ddc273c2f5847f30d698ca14b67.js
I, [2015-02-08T18:14:13.732487 #33837]  INFO -- : Writing /Users/lancedikson/Projects/shemberg-rails/public/assets/require-4bbd1abb9811b646f2aea5d348d28770.js 

But, in folder I have:

➜ ~/Projects/shemberg-rails (feature/rjs) ls -lah public/assets/
total 5552
drwxr-xr-x  19 lancedikson  staff   646B Feb  8 18:14 .
drwxr-xr-x  10 lancedikson  staff   340B Feb  8 18:14 ..
drwxr-xr-x   6 lancedikson  staff   204B Feb  8 18:14 admin
-rw-r--r--   1 lancedikson  staff   673K Feb  1 03:23 application-28ccd3011516b2f1cdd829217c515625.css
-rw-r--r--   1 lancedikson  staff   130K Feb  1 03:23 application-28ccd3011516b2f1cdd829217c515625.css.gz
-rw-r--r--   1 lancedikson  staff    50B Feb  8 13:26 application-4f1870d7adc38f35ff024c98eb5b71a4.js
-rw-r--r--   1 lancedikson  staff    67B Feb  8 13:26 application-4f1870d7adc38f35ff024c98eb5b71a4.js.gz
-rw-r--r--   1 lancedikson  staff    89B Feb  8 18:14 application-f81c74b4de3f334717737c9e0b43249f.js
-rw-r--r--   1 lancedikson  staff    90B Feb  8 18:14 application-f81c74b4de3f334717737c9e0b43249f.js.gz
-rw-r--r--   1 lancedikson  staff     0B Feb  8 18:12 common-64e62ddc273c2f5847f30d698ca14b67.js
-rw-r--r--   1 lancedikson  staff    20B Feb  8 18:12 common-64e62ddc273c2f5847f30d698ca14b67.js.gz
-rw-r--r--   1 lancedikson  staff   483K Feb  8 18:14 common-74bf4293162f555521c0f69f2077f5bf.js
-rw-r--r--   1 lancedikson  staff   125K Feb  8 18:14 common-74bf4293162f555521c0f69f2077f5bf.js.gz
-rw-r--r--   1 lancedikson  staff   1.0M Feb  8 18:12 main-403ab1369687c21af13b7e1351e56472.css
-rw-r--r--   1 lancedikson  staff   191K Feb  8 18:12 main-403ab1369687c21af13b7e1351e56472.css.gz
-rw-r--r--   1 lancedikson  staff   1.4K Feb  8 18:14 manifest-5355d5ce436fd643ee50124297babd0d.json
-rw-r--r--   1 lancedikson  staff    81K Feb  7 18:51 require-4bbd1abb9811b646f2aea5d348d28770.js
-rw-r--r--   1 lancedikson  staff    20K Feb  7 18:51 require-4bbd1abb9811b646f2aea5d348d28770.js.gz
-rw-r--r--   1 lancedikson  staff   182B Feb  8 18:14 rjs_manifest.yml
lancedikson commented 9 years ago

Oh, I decide the problem. First of all, my mistake is that I include js-files to assets.precompile. Rails write Sprockets::Rails::Helper::AssetFilteredError and suggest add this source to assets.precompile. Just set value config.assets.raise_runtime_errors to false. But requirejs-rails do not load paths section from requirejs.yml with the helper requirejs_include_tag. I just comment value config.assets.digest or set it to false and it's works. I don't know why, but it helps.