webpacker 4.0.2 → 5.4.3

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 (119) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc.js +8 -8
  3. data/.github/workflows/jest.yml +38 -0
  4. data/.github/workflows/js-lint.yml +39 -0
  5. data/.github/workflows/rubocop.yml +39 -0
  6. data/.github/workflows/ruby.yml +58 -0
  7. data/.gitignore +1 -0
  8. data/.node-version +1 -1
  9. data/.rubocop.yml +115 -14
  10. data/.travis.yml +16 -18
  11. data/CHANGELOG.md +329 -130
  12. data/Gemfile +1 -1
  13. data/Gemfile.lock +127 -105
  14. data/README.md +84 -217
  15. data/docs/assets.md +20 -10
  16. data/docs/css.md +126 -7
  17. data/docs/deployment.md +55 -10
  18. data/docs/docker.md +33 -14
  19. data/docs/engines.md +60 -2
  20. data/docs/env.md +0 -2
  21. data/docs/es6.md +24 -5
  22. data/docs/integrations.md +220 -0
  23. data/docs/target.md +22 -0
  24. data/docs/testing.md +2 -3
  25. data/docs/troubleshooting.md +46 -7
  26. data/docs/typescript.md +93 -26
  27. data/docs/v4-upgrade.md +12 -2
  28. data/docs/webpack-dev-server.md +2 -2
  29. data/docs/webpack.md +21 -7
  30. data/gemfiles/Gemfile-rails-edge +2 -3
  31. data/gemfiles/Gemfile-rails.5.2.x +1 -2
  32. data/gemfiles/Gemfile-rails.6.0.x +9 -0
  33. data/lib/install/bin/webpack +0 -1
  34. data/lib/install/bin/webpack-dev-server +0 -1
  35. data/lib/install/coffee.rb +1 -1
  36. data/lib/install/config/babel.config.js +24 -12
  37. data/lib/install/config/webpacker.yml +3 -6
  38. data/lib/install/elm.rb +3 -3
  39. data/lib/install/erb.rb +2 -2
  40. data/lib/install/examples/angular/hello_angular/polyfills.ts +2 -2
  41. data/lib/install/examples/react/babel.config.js +31 -15
  42. data/lib/install/examples/react/tsconfig.json +2 -1
  43. data/lib/install/examples/svelte/app.svelte +11 -0
  44. data/lib/install/examples/svelte/hello_svelte.js +20 -0
  45. data/lib/install/examples/typescript/tsconfig.json +2 -1
  46. data/lib/install/examples/vue/hello_vue.js +2 -3
  47. data/lib/install/loaders/elm.js +9 -6
  48. data/lib/install/loaders/svelte.js +9 -0
  49. data/lib/install/svelte.rb +29 -0
  50. data/lib/install/template.rb +12 -4
  51. data/lib/install/typescript.rb +6 -13
  52. data/lib/install/vue.rb +1 -1
  53. data/lib/tasks/installers.rake +1 -0
  54. data/lib/tasks/webpacker/check_node.rake +15 -8
  55. data/lib/tasks/webpacker/check_yarn.rake +16 -10
  56. data/lib/tasks/webpacker/clean.rake +25 -0
  57. data/lib/tasks/webpacker/clobber.rake +8 -4
  58. data/lib/tasks/webpacker/compile.rake +10 -15
  59. data/lib/tasks/webpacker/yarn_install.rake +11 -1
  60. data/lib/tasks/webpacker.rake +2 -0
  61. data/lib/webpacker/commands.rb +53 -1
  62. data/lib/webpacker/compiler.rb +24 -9
  63. data/lib/webpacker/configuration.rb +36 -13
  64. data/lib/webpacker/dev_server.rb +1 -1
  65. data/lib/webpacker/dev_server_proxy.rb +5 -9
  66. data/lib/webpacker/dev_server_runner.rb +10 -4
  67. data/lib/webpacker/env.rb +6 -2
  68. data/lib/webpacker/helper.rb +71 -26
  69. data/lib/webpacker/manifest.rb +4 -4
  70. data/lib/webpacker/railtie.rb +6 -43
  71. data/lib/webpacker/runner.rb +1 -0
  72. data/lib/webpacker/version.rb +1 -1
  73. data/lib/webpacker/webpack_runner.rb +6 -0
  74. data/lib/webpacker.rb +9 -1
  75. data/package/__tests__/config.js +12 -24
  76. data/package/__tests__/dev_server.js +2 -0
  77. data/package/__tests__/development.js +14 -1
  78. data/package/config.js +6 -11
  79. data/package/configPath.js +3 -0
  80. data/package/config_types/config_list.js +3 -3
  81. data/package/config_types/config_object.js +1 -1
  82. data/package/dev_server.js +1 -1
  83. data/package/env.js +1 -2
  84. data/package/environments/__tests__/base.js +30 -3
  85. data/package/environments/base.js +20 -10
  86. data/package/environments/development.js +39 -37
  87. data/package/environments/production.js +12 -2
  88. data/package/rules/babel.js +12 -5
  89. data/package/rules/file.js +3 -2
  90. data/package/rules/node_modules.js +3 -4
  91. data/package/rules/sass.js +11 -2
  92. data/package/utils/__tests__/get_style_rule.js +9 -0
  93. data/package/utils/deep_merge.js +5 -5
  94. data/package/utils/get_style_rule.js +7 -12
  95. data/package/utils/helpers.js +10 -10
  96. data/package.json +43 -42
  97. data/test/command_test.rb +6 -0
  98. data/test/compiler_test.rb +10 -6
  99. data/test/configuration_test.rb +40 -30
  100. data/test/dev_server_runner_test.rb +1 -1
  101. data/test/dev_server_test.rb +22 -0
  102. data/test/helper_test.rb +58 -9
  103. data/test/manifest_test.rb +37 -6
  104. data/test/rake_tasks_test.rb +17 -0
  105. data/test/test_app/app/javascript/packs/multi_entry.css +4 -0
  106. data/test/test_app/app/javascript/packs/multi_entry.js +4 -0
  107. data/test/test_app/bin/webpack +0 -1
  108. data/test/test_app/bin/webpack-dev-server +0 -1
  109. data/test/test_app/config/application.rb +0 -1
  110. data/test/test_app/config/webpacker.yml +8 -1
  111. data/test/test_app/public/packs/manifest.json +4 -0
  112. data/test/webpack_runner_test.rb +1 -1
  113. data/webpacker.gemspec +7 -4
  114. data/yarn.lock +4552 -4077
  115. metadata +73 -19
  116. data/gemfiles/Gemfile-rails.4.2.x +0 -10
  117. data/gemfiles/Gemfile-rails.5.0.x +0 -10
  118. data/gemfiles/Gemfile-rails.5.1.x +0 -10
  119. data/lib/install/loaders/typescript.js +0 -11
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: 4.0.2
4
+ version: 5.4.3
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: 2019-03-06 00:00:00.000000000 Z
12
+ date: 2021-09-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -17,28 +17,28 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: '4.2'
20
+ version: '5.2'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: '4.2'
27
+ version: '5.2'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: railties
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - ">="
33
33
  - !ruby/object:Gem::Version
34
- version: '4.2'
34
+ version: '5.2'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
- version: '4.2'
41
+ version: '5.2'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rack-proxy
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -53,20 +53,62 @@ dependencies:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: 0.6.1
56
+ - !ruby/object:Gem::Dependency
57
+ name: semantic_range
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ">="
61
+ - !ruby/object:Gem::Version
62
+ version: 2.3.0
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ">="
68
+ - !ruby/object:Gem::Version
69
+ version: 2.3.0
56
70
  - !ruby/object:Gem::Dependency
57
71
  name: bundler
58
72
  requirement: !ruby/object:Gem::Requirement
59
73
  requirements:
60
- - - "~>"
74
+ - - ">="
61
75
  - !ruby/object:Gem::Version
62
- version: '1.12'
76
+ version: 1.3.0
63
77
  type: :development
64
78
  prerelease: false
65
79
  version_requirements: !ruby/object:Gem::Requirement
66
80
  requirements:
67
- - - "~>"
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 1.3.0
84
+ - !ruby/object:Gem::Dependency
85
+ name: rubocop
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - '='
89
+ - !ruby/object:Gem::Version
90
+ version: 0.93.1
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - '='
96
+ - !ruby/object:Gem::Version
97
+ version: 0.93.1
98
+ - !ruby/object:Gem::Dependency
99
+ name: rubocop-performance
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: '0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
68
110
  - !ruby/object:Gem::Version
69
- version: '1.12'
111
+ version: '0'
70
112
  description:
71
113
  email:
72
114
  - david@basecamp.com
@@ -77,6 +119,10 @@ extra_rdoc_files: []
77
119
  files:
78
120
  - ".eslintignore"
79
121
  - ".eslintrc.js"
122
+ - ".github/workflows/jest.yml"
123
+ - ".github/workflows/js-lint.yml"
124
+ - ".github/workflows/rubocop.yml"
125
+ - ".github/workflows/ruby.yml"
80
126
  - ".gitignore"
81
127
  - ".node-version"
82
128
  - ".rubocop.yml"
@@ -97,8 +143,10 @@ files:
97
143
  - docs/env.md
98
144
  - docs/es6.md
99
145
  - docs/folder-structure.md
146
+ - docs/integrations.md
100
147
  - docs/misc.md
101
148
  - docs/props.md
149
+ - docs/target.md
102
150
  - docs/testing.md
103
151
  - docs/troubleshooting.md
104
152
  - docs/typescript.md
@@ -107,10 +155,8 @@ files:
107
155
  - docs/webpack.md
108
156
  - docs/yarn.md
109
157
  - gemfiles/Gemfile-rails-edge
110
- - gemfiles/Gemfile-rails.4.2.x
111
- - gemfiles/Gemfile-rails.5.0.x
112
- - gemfiles/Gemfile-rails.5.1.x
113
158
  - gemfiles/Gemfile-rails.5.2.x
159
+ - gemfiles/Gemfile-rails.6.0.x
114
160
  - lib/install/angular.rb
115
161
  - lib/install/bin/webpack
116
162
  - lib/install/bin/webpack-dev-server
@@ -141,6 +187,8 @@ files:
141
187
  - lib/install/examples/stimulus/application.js
142
188
  - lib/install/examples/stimulus/controllers/hello_controller.js
143
189
  - lib/install/examples/stimulus/controllers/index.js
190
+ - lib/install/examples/svelte/app.svelte
191
+ - lib/install/examples/svelte/hello_svelte.js
144
192
  - lib/install/examples/typescript/hello_typescript.ts
145
193
  - lib/install/examples/typescript/tsconfig.json
146
194
  - lib/install/examples/vue/app.vue
@@ -149,10 +197,11 @@ files:
149
197
  - lib/install/loaders/coffee.js
150
198
  - lib/install/loaders/elm.js
151
199
  - lib/install/loaders/erb.js
152
- - lib/install/loaders/typescript.js
200
+ - lib/install/loaders/svelte.js
153
201
  - lib/install/loaders/vue.js
154
202
  - lib/install/react.rb
155
203
  - lib/install/stimulus.rb
204
+ - lib/install/svelte.rb
156
205
  - lib/install/template.rb
157
206
  - lib/install/typescript.rb
158
207
  - lib/install/vue.rb
@@ -162,6 +211,7 @@ files:
162
211
  - lib/tasks/webpacker/check_binstubs.rake
163
212
  - lib/tasks/webpacker/check_node.rake
164
213
  - lib/tasks/webpacker/check_yarn.rake
214
+ - lib/tasks/webpacker/clean.rake
165
215
  - lib/tasks/webpacker/clobber.rake
166
216
  - lib/tasks/webpacker/compile.rake
167
217
  - lib/tasks/webpacker/info.rake
@@ -192,6 +242,7 @@ files:
192
242
  - package/__tests__/staging.js
193
243
  - package/__tests__/test.js
194
244
  - package/config.js
245
+ - package/configPath.js
195
246
  - package/config_types/__tests__/config_list.js
196
247
  - package/config_types/__tests__/config_object.js
197
248
  - package/config_types/config_list.js
@@ -233,6 +284,8 @@ files:
233
284
  - test/rake_tasks_test.rb
234
285
  - test/test_app/Rakefile
235
286
  - test/test_app/app/javascript/packs/application.js
287
+ - test/test_app/app/javascript/packs/multi_entry.css
288
+ - test/test_app/app/javascript/packs/multi_entry.js
236
289
  - test/test_app/bin/webpack
237
290
  - test/test_app/bin/webpack-dev-server
238
291
  - test/test_app/config.ru
@@ -253,8 +306,8 @@ homepage: https://github.com/rails/webpacker
253
306
  licenses:
254
307
  - MIT
255
308
  metadata:
256
- source_code_uri: https://github.com/rails/webpacker/tree/v4.0.2
257
- changelog_uri: https://github.com/rails/webpacker/blob/v4.0.2/CHANGELOG.md
309
+ source_code_uri: https://github.com/rails/webpacker/tree/v5.4.3
310
+ changelog_uri: https://github.com/rails/webpacker/blob/v5.4.3/CHANGELOG.md
258
311
  post_install_message:
259
312
  rdoc_options: []
260
313
  require_paths:
@@ -263,15 +316,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
263
316
  requirements:
264
317
  - - ">="
265
318
  - !ruby/object:Gem::Version
266
- version: 2.2.0
319
+ version: 2.4.0
267
320
  required_rubygems_version: !ruby/object:Gem::Requirement
268
321
  requirements:
269
322
  - - ">="
270
323
  - !ruby/object:Gem::Version
271
324
  version: '0'
272
325
  requirements: []
273
- rubyforge_project:
274
- rubygems_version: 2.7.6
326
+ rubygems_version: 3.1.4
275
327
  signing_key:
276
328
  specification_version: 4
277
329
  summary: Use webpack to manage app-like JavaScript modules in Rails
@@ -287,6 +339,8 @@ test_files:
287
339
  - test/rake_tasks_test.rb
288
340
  - test/test_app/Rakefile
289
341
  - test/test_app/app/javascript/packs/application.js
342
+ - test/test_app/app/javascript/packs/multi_entry.css
343
+ - test/test_app/app/javascript/packs/multi_entry.js
290
344
  - test/test_app/bin/webpack
291
345
  - test/test_app/bin/webpack-dev-server
292
346
  - test/test_app/config.ru
@@ -1,10 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "webpacker", path: ".."
4
-
5
- gem "rails", "~> 4.2.0"
6
- gem "rake", ">= 11.1"
7
- gem "rubocop", git: "https://github.com/rubocop-hq/rubocop.git", require: false
8
- gem "rack-proxy", require: false
9
- gem "minitest", "~> 5.0"
10
- gem "byebug"
@@ -1,10 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "webpacker", path: ".."
4
-
5
- gem "rails", "~> 5.0.0"
6
- gem "rake", ">= 11.1"
7
- gem "rubocop", git: "https://github.com/rubocop-hq/rubocop.git", require: false
8
- gem "rack-proxy", require: false
9
- gem "minitest", "~> 5.0"
10
- gem "byebug"
@@ -1,10 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gem "webpacker", path: ".."
4
-
5
- gem "rails", "~> 5.1.0"
6
- gem "rake", ">= 11.1"
7
- gem "rubocop", git: "https://github.com/rubocop-hq/rubocop.git", require: false
8
- gem "rack-proxy", require: false
9
- gem "minitest", "~> 5.0"
10
- gem "byebug"
@@ -1,11 +0,0 @@
1
- const PnpWebpackPlugin = require('pnp-webpack-plugin')
2
-
3
- module.exports = {
4
- test: /\.(ts|tsx)?(\.erb)?$/,
5
- use: [
6
- {
7
- loader: 'ts-loader',
8
- options: PnpWebpackPlugin.tsLoaderOptions()
9
- }
10
- ]
11
- }