webpacker 5.4.4 → 6.0.0.rc.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc.js +1 -1
  3. data/.github/workflows/jest.yml +7 -15
  4. data/.github/workflows/js-lint.yml +7 -15
  5. data/.github/workflows/rubocop.yml +1 -1
  6. data/.github/workflows/ruby.yml +18 -16
  7. data/.gitignore +2 -0
  8. data/.node-version +1 -1
  9. data/.rubocop.yml +5 -7
  10. data/CHANGELOG.md +30 -12
  11. data/CONTRIBUTING.md +20 -1
  12. data/Gemfile.lock +83 -83
  13. data/README.md +389 -179
  14. data/config/README.md +3 -0
  15. data/config/webpacker.yml +1 -0
  16. data/docs/deployment.md +9 -11
  17. data/docs/developing_webpacker.md +29 -0
  18. data/docs/troubleshooting.md +61 -25
  19. data/docs/v6_upgrade.md +113 -0
  20. data/gemfiles/Gemfile-rails.6.1.x +12 -0
  21. data/lib/install/{javascript/packs/application.js → application.js} +2 -5
  22. data/lib/install/bin/webpack +4 -7
  23. data/lib/install/bin/yarn +18 -0
  24. data/lib/install/config/webpack/base.js +3 -0
  25. data/lib/install/config/webpack/development.js +2 -2
  26. data/lib/install/config/webpack/production.js +2 -2
  27. data/lib/install/config/webpack/test.js +2 -2
  28. data/lib/install/config/webpacker.yml +21 -49
  29. data/lib/install/package.json +15 -0
  30. data/lib/install/template.rb +64 -29
  31. data/lib/tasks/webpacker/binstubs.rake +6 -4
  32. data/lib/tasks/webpacker/check_binstubs.rake +4 -4
  33. data/lib/tasks/webpacker/check_node.rake +3 -0
  34. data/lib/tasks/webpacker/check_yarn.rake +3 -0
  35. data/lib/tasks/webpacker/clobber.rake +1 -1
  36. data/lib/tasks/webpacker/compile.rake +4 -2
  37. data/lib/tasks/webpacker/info.rake +12 -10
  38. data/lib/tasks/webpacker/install.rake +6 -4
  39. data/lib/tasks/webpacker/verify_config.rake +14 -0
  40. data/lib/tasks/webpacker/verify_install.rake +1 -10
  41. data/lib/tasks/webpacker/yarn_install.rake +9 -7
  42. data/lib/tasks/webpacker.rake +2 -11
  43. data/lib/tasks/yarn.rake +38 -0
  44. data/lib/webpacker/commands.rb +21 -16
  45. data/lib/webpacker/compiler.rb +16 -9
  46. data/lib/webpacker/configuration.rb +8 -32
  47. data/lib/webpacker/dev_server.rb +6 -0
  48. data/lib/webpacker/dev_server_runner.rb +28 -4
  49. data/lib/webpacker/helper.rb +47 -81
  50. data/lib/webpacker/instance.rb +4 -0
  51. data/lib/webpacker/manifest.rb +2 -3
  52. data/lib/webpacker/railtie.rb +8 -2
  53. data/lib/webpacker/runner.rb +1 -1
  54. data/lib/webpacker/version.rb +1 -1
  55. data/lib/webpacker/webpack_runner.rb +29 -3
  56. data/lib/webpacker.rb +1 -1
  57. data/package/__tests__/config.js +5 -37
  58. data/package/__tests__/development.js +13 -21
  59. data/package/__tests__/env.js +16 -4
  60. data/package/__tests__/index.js +9 -0
  61. data/package/__tests__/production.js +6 -6
  62. data/package/__tests__/staging.js +7 -6
  63. data/package/__tests__/test.js +4 -5
  64. data/package/babel/preset.js +54 -0
  65. data/package/config.js +6 -14
  66. data/package/env.js +13 -4
  67. data/package/environments/__tests__/base.js +20 -52
  68. data/package/environments/base.js +68 -128
  69. data/package/environments/development.js +49 -47
  70. data/package/environments/production.js +66 -64
  71. data/package/environments/test.js +2 -2
  72. data/package/index.js +15 -8
  73. data/package/inliningCss.js +7 -0
  74. data/package/rules/babel.js +10 -8
  75. data/package/rules/coffee.js +6 -0
  76. data/package/rules/erb.js +15 -0
  77. data/package/rules/file.js +21 -19
  78. data/package/rules/index.js +16 -18
  79. data/package/rules/less.js +22 -0
  80. data/package/rules/raw.js +5 -0
  81. data/package/rules/sass.js +9 -10
  82. data/package/rules/stylus.js +26 -0
  83. data/package/utils/get_style_rule.js +28 -36
  84. data/package/utils/helpers.js +28 -35
  85. data/package.json +18 -38
  86. data/test/command_test.rb +76 -0
  87. data/test/compiler_test.rb +0 -12
  88. data/test/configuration_test.rb +4 -35
  89. data/test/dev_server_runner_test.rb +36 -6
  90. data/test/engine_rake_tasks_test.rb +39 -0
  91. data/test/helper_test.rb +79 -77
  92. data/test/manifest_test.rb +16 -0
  93. data/test/mounted_app/Rakefile +4 -0
  94. data/test/mounted_app/test/dummy/Rakefile +3 -0
  95. data/test/mounted_app/test/dummy/bin/rails +3 -0
  96. data/test/mounted_app/test/dummy/bin/rake +3 -0
  97. data/test/mounted_app/test/dummy/config/application.rb +10 -0
  98. data/test/mounted_app/test/dummy/config/environment.rb +3 -0
  99. data/test/mounted_app/test/dummy/config/webpacker.yml +75 -0
  100. data/test/mounted_app/test/dummy/config.ru +5 -0
  101. data/test/mounted_app/test/dummy/package.json +7 -0
  102. data/test/rake_tasks_test.rb +1 -10
  103. data/test/test_app/app/{javascript/packs → packs/entrypoints}/application.js +1 -1
  104. data/test/test_app/config/initializers/inspect_autoload_paths.rb +1 -0
  105. data/test/test_app/config/webpacker.yml +5 -31
  106. data/test/test_app/config/webpacker_other_location.yml +79 -0
  107. data/test/test_app/config/webpacker_public_root.yml +0 -1
  108. data/test/test_app/public/packs/manifest.json +36 -18
  109. data/test/test_app/some.config.js +0 -0
  110. data/test/webpack_runner_test.rb +9 -3
  111. data/test/webpacker_test.rb +21 -0
  112. data/webpacker.gemspec +2 -2
  113. data/yarn.lock +1277 -4620
  114. metadata +63 -92
  115. data/docs/assets.md +0 -119
  116. data/docs/cloud9.md +0 -310
  117. data/docs/css.md +0 -308
  118. data/docs/docker.md +0 -68
  119. data/docs/engines.md +0 -213
  120. data/docs/env.md +0 -63
  121. data/docs/es6.md +0 -72
  122. data/docs/folder-structure.md +0 -66
  123. data/docs/integrations.md +0 -220
  124. data/docs/misc.md +0 -23
  125. data/docs/props.md +0 -223
  126. data/docs/target.md +0 -22
  127. data/docs/testing.md +0 -136
  128. data/docs/typescript.md +0 -190
  129. data/docs/v4-upgrade.md +0 -142
  130. data/docs/webpack-dev-server.md +0 -92
  131. data/docs/webpack.md +0 -364
  132. data/docs/yarn.md +0 -23
  133. data/lib/install/angular.rb +0 -23
  134. data/lib/install/coffee.rb +0 -25
  135. data/lib/install/config/.browserslistrc +0 -1
  136. data/lib/install/config/babel.config.js +0 -82
  137. data/lib/install/config/postcss.config.js +0 -12
  138. data/lib/install/config/webpack/environment.js +0 -3
  139. data/lib/install/elm.rb +0 -39
  140. data/lib/install/erb.rb +0 -25
  141. data/lib/install/examples/angular/hello_angular/app/app.component.ts +0 -9
  142. data/lib/install/examples/angular/hello_angular/app/app.module.ts +0 -16
  143. data/lib/install/examples/angular/hello_angular/index.ts +0 -8
  144. data/lib/install/examples/angular/hello_angular/polyfills.ts +0 -73
  145. data/lib/install/examples/angular/hello_angular.js +0 -7
  146. data/lib/install/examples/coffee/hello_coffee.coffee +0 -4
  147. data/lib/install/examples/elm/Main.elm +0 -55
  148. data/lib/install/examples/elm/hello_elm.js +0 -16
  149. data/lib/install/examples/erb/hello_erb.js.erb +0 -6
  150. data/lib/install/examples/react/babel.config.js +0 -99
  151. data/lib/install/examples/react/hello_react.jsx +0 -26
  152. data/lib/install/examples/react/tsconfig.json +0 -21
  153. data/lib/install/examples/stimulus/application.js +0 -1
  154. data/lib/install/examples/stimulus/controllers/hello_controller.js +0 -18
  155. data/lib/install/examples/stimulus/controllers/index.js +0 -9
  156. data/lib/install/examples/svelte/app.svelte +0 -11
  157. data/lib/install/examples/svelte/hello_svelte.js +0 -20
  158. data/lib/install/examples/typescript/hello_typescript.ts +0 -4
  159. data/lib/install/examples/typescript/tsconfig.json +0 -24
  160. data/lib/install/examples/vue/app.vue +0 -22
  161. data/lib/install/examples/vue/hello_vue.js +0 -72
  162. data/lib/install/loaders/coffee.js +0 -6
  163. data/lib/install/loaders/elm.js +0 -25
  164. data/lib/install/loaders/erb.js +0 -11
  165. data/lib/install/loaders/svelte.js +0 -9
  166. data/lib/install/loaders/vue.js +0 -6
  167. data/lib/install/react.rb +0 -18
  168. data/lib/install/stimulus.rb +0 -12
  169. data/lib/install/svelte.rb +0 -29
  170. data/lib/install/typescript.rb +0 -39
  171. data/lib/install/vue.rb +0 -49
  172. data/lib/tasks/installers.rake +0 -42
  173. data/package/config_types/__tests__/config_list.js +0 -118
  174. data/package/config_types/__tests__/config_object.js +0 -43
  175. data/package/config_types/config_list.js +0 -75
  176. data/package/config_types/config_object.js +0 -55
  177. data/package/config_types/index.js +0 -7
  178. data/package/rules/module.css.js +0 -3
  179. data/package/rules/module.sass.js +0 -8
  180. data/package/rules/node_modules.js +0 -22
  181. data/package/utils/__tests__/deep_assign.js +0 -32
  182. data/package/utils/__tests__/deep_merge.js +0 -10
  183. data/package/utils/__tests__/get_style_rule.js +0 -65
  184. data/package/utils/__tests__/objectify.js +0 -9
  185. data/package/utils/deep_assign.js +0 -22
  186. data/package/utils/deep_merge.js +0 -22
  187. data/package/utils/objectify.js +0 -3
  188. /data/test/test_app/app/{javascript/packs → packs/entrypoints}/multi_entry.css +0 -0
  189. /data/test/test_app/app/{javascript/packs → packs/entrypoints}/multi_entry.js +0 -0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: webpacker
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.4.4
4
+ version: 6.0.0.rc.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Heinemeier Hansson
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-01-31 00:00:00.000000000 Z
12
+ date: 2021-11-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -85,16 +85,16 @@ dependencies:
85
85
  name: rubocop
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - '='
88
+ - - ">="
89
89
  - !ruby/object:Gem::Version
90
- version: 0.93.1
90
+ version: '0'
91
91
  type: :development
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - '='
95
+ - - ">="
96
96
  - !ruby/object:Gem::Version
97
- version: 0.93.1
97
+ version: '0'
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: rubocop-performance
100
100
  requirement: !ruby/object:Gem::Requirement
@@ -133,78 +133,28 @@ files:
133
133
  - MIT-LICENSE
134
134
  - README.md
135
135
  - Rakefile
136
- - docs/assets.md
137
- - docs/cloud9.md
138
- - docs/css.md
136
+ - config/README.md
137
+ - config/webpacker.yml
139
138
  - docs/deployment.md
140
- - docs/docker.md
141
- - docs/engines.md
142
- - docs/env.md
143
- - docs/es6.md
144
- - docs/folder-structure.md
145
- - docs/integrations.md
146
- - docs/misc.md
147
- - docs/props.md
148
- - docs/target.md
149
- - docs/testing.md
139
+ - docs/developing_webpacker.md
150
140
  - docs/troubleshooting.md
151
- - docs/typescript.md
152
- - docs/v4-upgrade.md
153
- - docs/webpack-dev-server.md
154
- - docs/webpack.md
155
- - docs/yarn.md
141
+ - docs/v6_upgrade.md
156
142
  - gemfiles/Gemfile-rails-edge
157
143
  - gemfiles/Gemfile-rails.5.2.x
158
144
  - gemfiles/Gemfile-rails.6.0.x
159
- - lib/install/angular.rb
145
+ - gemfiles/Gemfile-rails.6.1.x
146
+ - lib/install/application.js
160
147
  - lib/install/bin/webpack
161
148
  - lib/install/bin/webpack-dev-server
149
+ - lib/install/bin/yarn
162
150
  - lib/install/binstubs.rb
163
- - lib/install/coffee.rb
164
- - lib/install/config/.browserslistrc
165
- - lib/install/config/babel.config.js
166
- - lib/install/config/postcss.config.js
151
+ - lib/install/config/webpack/base.js
167
152
  - lib/install/config/webpack/development.js
168
- - lib/install/config/webpack/environment.js
169
153
  - lib/install/config/webpack/production.js
170
154
  - lib/install/config/webpack/test.js
171
155
  - lib/install/config/webpacker.yml
172
- - lib/install/elm.rb
173
- - lib/install/erb.rb
174
- - lib/install/examples/angular/hello_angular.js
175
- - lib/install/examples/angular/hello_angular/app/app.component.ts
176
- - lib/install/examples/angular/hello_angular/app/app.module.ts
177
- - lib/install/examples/angular/hello_angular/index.ts
178
- - lib/install/examples/angular/hello_angular/polyfills.ts
179
- - lib/install/examples/coffee/hello_coffee.coffee
180
- - lib/install/examples/elm/Main.elm
181
- - lib/install/examples/elm/hello_elm.js
182
- - lib/install/examples/erb/hello_erb.js.erb
183
- - lib/install/examples/react/babel.config.js
184
- - lib/install/examples/react/hello_react.jsx
185
- - lib/install/examples/react/tsconfig.json
186
- - lib/install/examples/stimulus/application.js
187
- - lib/install/examples/stimulus/controllers/hello_controller.js
188
- - lib/install/examples/stimulus/controllers/index.js
189
- - lib/install/examples/svelte/app.svelte
190
- - lib/install/examples/svelte/hello_svelte.js
191
- - lib/install/examples/typescript/hello_typescript.ts
192
- - lib/install/examples/typescript/tsconfig.json
193
- - lib/install/examples/vue/app.vue
194
- - lib/install/examples/vue/hello_vue.js
195
- - lib/install/javascript/packs/application.js
196
- - lib/install/loaders/coffee.js
197
- - lib/install/loaders/elm.js
198
- - lib/install/loaders/erb.js
199
- - lib/install/loaders/svelte.js
200
- - lib/install/loaders/vue.js
201
- - lib/install/react.rb
202
- - lib/install/stimulus.rb
203
- - lib/install/svelte.rb
156
+ - lib/install/package.json
204
157
  - lib/install/template.rb
205
- - lib/install/typescript.rb
206
- - lib/install/vue.rb
207
- - lib/tasks/installers.rake
208
158
  - lib/tasks/webpacker.rake
209
159
  - lib/tasks/webpacker/binstubs.rake
210
160
  - lib/tasks/webpacker/check_binstubs.rake
@@ -215,8 +165,10 @@ files:
215
165
  - lib/tasks/webpacker/compile.rake
216
166
  - lib/tasks/webpacker/info.rake
217
167
  - lib/tasks/webpacker/install.rake
168
+ - lib/tasks/webpacker/verify_config.rake
218
169
  - lib/tasks/webpacker/verify_install.rake
219
170
  - lib/tasks/webpacker/yarn_install.rake
171
+ - lib/tasks/yarn.rake
220
172
  - lib/webpacker.rb
221
173
  - lib/webpacker/commands.rb
222
174
  - lib/webpacker/compiler.rb
@@ -237,16 +189,13 @@ files:
237
189
  - package/__tests__/dev_server.js
238
190
  - package/__tests__/development.js
239
191
  - package/__tests__/env.js
192
+ - package/__tests__/index.js
240
193
  - package/__tests__/production.js
241
194
  - package/__tests__/staging.js
242
195
  - package/__tests__/test.js
196
+ - package/babel/preset.js
243
197
  - package/config.js
244
198
  - package/configPath.js
245
- - package/config_types/__tests__/config_list.js
246
- - package/config_types/__tests__/config_object.js
247
- - package/config_types/config_list.js
248
- - package/config_types/config_object.js
249
- - package/config_types/index.js
250
199
  - package/dev_server.js
251
200
  - package/env.js
252
201
  - package/environments/__tests__/base.js
@@ -255,46 +204,55 @@ files:
255
204
  - package/environments/production.js
256
205
  - package/environments/test.js
257
206
  - package/index.js
207
+ - package/inliningCss.js
258
208
  - package/rules/babel.js
209
+ - package/rules/coffee.js
259
210
  - package/rules/css.js
211
+ - package/rules/erb.js
260
212
  - package/rules/file.js
261
213
  - package/rules/index.js
262
- - package/rules/module.css.js
263
- - package/rules/module.sass.js
264
- - package/rules/node_modules.js
214
+ - package/rules/less.js
215
+ - package/rules/raw.js
265
216
  - package/rules/sass.js
266
- - package/utils/__tests__/deep_assign.js
267
- - package/utils/__tests__/deep_merge.js
268
- - package/utils/__tests__/get_style_rule.js
269
- - package/utils/__tests__/objectify.js
270
- - package/utils/deep_assign.js
271
- - package/utils/deep_merge.js
217
+ - package/rules/stylus.js
272
218
  - package/utils/get_style_rule.js
273
219
  - package/utils/helpers.js
274
- - package/utils/objectify.js
275
220
  - test/command_test.rb
276
221
  - test/compiler_test.rb
277
222
  - test/configuration_test.rb
278
223
  - test/dev_server_runner_test.rb
279
224
  - test/dev_server_test.rb
225
+ - test/engine_rake_tasks_test.rb
280
226
  - test/env_test.rb
281
227
  - test/helper_test.rb
282
228
  - test/manifest_test.rb
229
+ - test/mounted_app/Rakefile
230
+ - test/mounted_app/test/dummy/Rakefile
231
+ - test/mounted_app/test/dummy/bin/rails
232
+ - test/mounted_app/test/dummy/bin/rake
233
+ - test/mounted_app/test/dummy/config.ru
234
+ - test/mounted_app/test/dummy/config/application.rb
235
+ - test/mounted_app/test/dummy/config/environment.rb
236
+ - test/mounted_app/test/dummy/config/webpacker.yml
237
+ - test/mounted_app/test/dummy/package.json
283
238
  - test/rake_tasks_test.rb
284
239
  - test/test_app/Rakefile
285
- - test/test_app/app/javascript/packs/application.js
286
- - test/test_app/app/javascript/packs/multi_entry.css
287
- - test/test_app/app/javascript/packs/multi_entry.js
240
+ - test/test_app/app/packs/entrypoints/application.js
241
+ - test/test_app/app/packs/entrypoints/multi_entry.css
242
+ - test/test_app/app/packs/entrypoints/multi_entry.js
288
243
  - test/test_app/bin/webpack
289
244
  - test/test_app/bin/webpack-dev-server
290
245
  - test/test_app/config.ru
291
246
  - test/test_app/config/application.rb
292
247
  - test/test_app/config/environment.rb
248
+ - test/test_app/config/initializers/inspect_autoload_paths.rb
293
249
  - test/test_app/config/webpack/development.js
294
250
  - test/test_app/config/webpacker.yml
251
+ - test/test_app/config/webpacker_other_location.yml
295
252
  - test/test_app/config/webpacker_public_root.yml
296
253
  - test/test_app/package.json
297
254
  - test/test_app/public/packs/manifest.json
255
+ - test/test_app/some.config.js
298
256
  - test/test_app/yarn.lock
299
257
  - test/test_helper.rb
300
258
  - test/webpack_runner_test.rb
@@ -305,8 +263,8 @@ homepage: https://github.com/rails/webpacker
305
263
  licenses:
306
264
  - MIT
307
265
  metadata:
308
- source_code_uri: https://github.com/rails/webpacker/tree/v5.4.4
309
- changelog_uri: https://github.com/rails/webpacker/blob/v5.4.4/CHANGELOG.md
266
+ source_code_uri: https://github.com/rails/webpacker/tree/v6.0.0.rc.6
267
+ changelog_uri: https://github.com/rails/webpacker/blob/v6.0.0.rc.6/CHANGELOG.md
310
268
  post_install_message:
311
269
  rdoc_options: []
312
270
  require_paths:
@@ -315,14 +273,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
315
273
  requirements:
316
274
  - - ">="
317
275
  - !ruby/object:Gem::Version
318
- version: 2.4.0
276
+ version: 2.7.0
319
277
  required_rubygems_version: !ruby/object:Gem::Requirement
320
278
  requirements:
321
- - - ">="
279
+ - - ">"
322
280
  - !ruby/object:Gem::Version
323
- version: '0'
281
+ version: 1.3.1
324
282
  requirements: []
325
- rubygems_version: 3.1.2
283
+ rubygems_version: 3.2.22
326
284
  signing_key:
327
285
  specification_version: 4
328
286
  summary: Use webpack to manage app-like JavaScript modules in Rails
@@ -332,24 +290,37 @@ test_files:
332
290
  - test/configuration_test.rb
333
291
  - test/dev_server_runner_test.rb
334
292
  - test/dev_server_test.rb
293
+ - test/engine_rake_tasks_test.rb
335
294
  - test/env_test.rb
336
295
  - test/helper_test.rb
337
296
  - test/manifest_test.rb
297
+ - test/mounted_app/Rakefile
298
+ - test/mounted_app/test/dummy/Rakefile
299
+ - test/mounted_app/test/dummy/bin/rails
300
+ - test/mounted_app/test/dummy/bin/rake
301
+ - test/mounted_app/test/dummy/config.ru
302
+ - test/mounted_app/test/dummy/config/application.rb
303
+ - test/mounted_app/test/dummy/config/environment.rb
304
+ - test/mounted_app/test/dummy/config/webpacker.yml
305
+ - test/mounted_app/test/dummy/package.json
338
306
  - test/rake_tasks_test.rb
339
307
  - test/test_app/Rakefile
340
- - test/test_app/app/javascript/packs/application.js
341
- - test/test_app/app/javascript/packs/multi_entry.css
342
- - test/test_app/app/javascript/packs/multi_entry.js
308
+ - test/test_app/app/packs/entrypoints/application.js
309
+ - test/test_app/app/packs/entrypoints/multi_entry.css
310
+ - test/test_app/app/packs/entrypoints/multi_entry.js
343
311
  - test/test_app/bin/webpack
344
312
  - test/test_app/bin/webpack-dev-server
345
313
  - test/test_app/config.ru
346
314
  - test/test_app/config/application.rb
347
315
  - test/test_app/config/environment.rb
316
+ - test/test_app/config/initializers/inspect_autoload_paths.rb
348
317
  - test/test_app/config/webpack/development.js
349
318
  - test/test_app/config/webpacker.yml
319
+ - test/test_app/config/webpacker_other_location.yml
350
320
  - test/test_app/config/webpacker_public_root.yml
351
321
  - test/test_app/package.json
352
322
  - test/test_app/public/packs/manifest.json
323
+ - test/test_app/some.config.js
353
324
  - test/test_app/yarn.lock
354
325
  - test/test_helper.rb
355
326
  - test/webpack_runner_test.rb
data/docs/assets.md DELETED
@@ -1,119 +0,0 @@
1
- # Assets
2
-
3
-
4
- Static assets like images and fonts support is enabled out-of-box
5
- and you can link them into your JavaScript app code and have them
6
- compiled automatically.
7
-
8
-
9
- ## Import from node modules
10
-
11
- You can also import styles from `node_modules` using the following syntax.
12
- Please note that your styles will always be extracted into `[pack_name].css`:
13
-
14
- ```sass
15
- // app/javascript/styles.sass
16
- // ~ to tell webpack that this is not a relative import:
17
-
18
- @import '~@material/animation/mdc-animation'
19
- @import '~bootstrap/dist/css/bootstrap'
20
- ```
21
-
22
- ```js
23
- // Your main app pack
24
- // app/javascript/packs/app.js
25
-
26
- import '../styles'
27
- ```
28
-
29
- ```erb
30
- <%# In your views %>
31
-
32
- <%= javascript_pack_tag 'app' %>
33
- <%= stylesheet_pack_tag 'app' %>
34
- ```
35
-
36
-
37
- ## Import from Sprockets using helpers
38
-
39
- It's possible to link to assets that have been precompiled by Sprockets. Add the `.erb` extension to your JavaScript file, then you can use Sprockets' asset helpers:
40
-
41
- ```erb
42
- <%# app/javascript/my_pack/example.js.erb %>
43
-
44
- <% helpers = ActionController::Base.helpers %>
45
- const railsImagePath = "<%= helpers.image_path('rails.png') %>"
46
- ```
47
-
48
- This is enabled by the `rails-erb-loader` loader rule in `config/webpack/loaders/erb.js`.
49
-
50
-
51
- ## Using babel module resolver
52
-
53
- You can also use [babel-plugin-module-resolver](https://github.com/tleunen/babel-plugin-module-resolver) to reference assets directly from `app/assets/**`
54
-
55
- ```bash
56
- yarn add babel-plugin-module-resolver
57
- ```
58
-
59
- Specify the plugin in your `babel.config.js` with the custom root or alias. Here's an example:
60
-
61
- ```js
62
- {
63
- plugins: [
64
- [require("babel-plugin-module-resolver").default, {
65
- "root": ["./app"],
66
- "alias": {
67
- "assets": "./assets"
68
- }
69
- }]
70
- ]
71
- }
72
- ```
73
-
74
- And then within your javascript app code:
75
-
76
- ```js
77
- // Note: we don't have to do any ../../ jazz
78
-
79
- import FooImage from 'assets/images/foo-image.png'
80
- import 'assets/stylesheets/bar'
81
- ```
82
-
83
-
84
- ## Link in your Rails views
85
-
86
- You can also link `js/images/styles/fonts` used within your js app in views using
87
- `asset_pack_path` and `image_pack_tag` helpers. These helpers are useful in cases where you just want to
88
- create a `<link rel="prefetch">` or `<img />` for an asset.
89
-
90
- ```yml
91
- app/javascript:
92
- - packs
93
- - app.js
94
- - images
95
- - calendar.png
96
- ```
97
-
98
- ```js
99
- // app/javascript/packs/app.js (or any of your packs)
100
-
101
- // import all image files in a folder:
102
- require.context('../images', true)
103
- ```
104
-
105
- ```erb
106
- <%# Rails view, for example app/views/layouts/application.html.erb %>
107
-
108
- <img src="<%= asset_pack_path 'media/images/calendar.png' %>" />
109
- <% # => <img src="/packs/media/images/calendar-k344a6d59eef8632c9d1.png" /> %>
110
-
111
- <%= image_pack_tag 'media/images/calendar.png' %>
112
- <% # => <img src="/packs/media/images/calendar-k344a6d59eef8632c9d1.png" /> %>
113
-
114
- <%# no path resolves to default 'images' folder: %>
115
- <%= image_pack_tag 'calendar.png' %>
116
- <% # => <img src="/packs/media/images/calendar-k344a6d59eef8632c9d1.png" /> %>
117
- ```
118
-
119
- Note you need to add a `media/` prefix (not `/media/`) to any subfolder structure you might have in `app/javascript`. See more examples in the [tests](https://github.com/rails/webpacker/blob/0b86cadb5ed921e2c1538382e72a236ec30a5d97/test/helper_test.rb#L37).