@@ -49,26 +49,39 @@ def requirejs_include_tag(name = nil, &block)
49
49
end
50
50
51
51
if Rails . application . config . assets . digest
52
- modules = requirejs . build_config [ 'modules' ] . map { |m | requirejs . module_name_for m }
52
+ assets_precompiled = !Rails . application . config . assets . compile
53
+ modules = requirejs . build_config [ "modules" ] . map { |m | requirejs . module_name_for m }
54
+ user_paths = requirejs . build_config [ "paths" ] || { }
53
55
54
56
# Generate digestified paths from the modules spec
55
57
paths = { }
56
- modules . each { |m | paths [ m ] = javascript_path ( m ) . sub /\. js$/ , '' }
57
58
58
- if run_config . has_key? 'paths'
59
+ modules . each do |module_name |
60
+ script_path = if !assets_precompiled
61
+ # If modules haven't been precompiled, search for them based on their user-defined paths before using the
62
+ # module name.
63
+ user_paths [ module_name ] || module_name
64
+ else
65
+ # If modules have been precompiled, the script path is just the module name.
66
+ module_name
67
+ end
68
+
69
+ paths [ module_name ] = javascript_path ( script_path ) . gsub ( /\. js$/ , "" )
70
+ end
71
+
72
+ if run_config . has_key? "paths"
59
73
# Add paths for assets specified by full URL (on a CDN)
60
- run_config [ ' paths' ] . each do |k , v |
74
+ run_config [ " paths" ] . each do |k , v |
61
75
paths [ k ] = v if v . is_a? ( Array ) || v =~ /^(https?:)?\/ \/ /
62
-
63
76
end
64
77
end
65
78
66
79
# Override user paths, whose mappings are only relevant in dev mode
67
80
# and in the build_config.
68
- run_config [ ' paths' ] = paths
81
+ run_config [ " paths" ] = paths
69
82
end
70
83
71
- run_config [ ' baseUrl' ] = base_url ( name )
84
+ run_config [ " baseUrl" ] = base_url ( name )
72
85
73
86
html . concat ( content_tag ( :script ) do
74
87
script = "require.config(#{ run_config . to_json } );"
0 commit comments