webpacker 3.6.0 → 4.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. checksums.yaml +4 -4
  2. data/.node-version +1 -0
  3. data/.travis.yml +12 -4
  4. data/CHANGELOG.md +240 -28
  5. data/CONTRIBUTING.md +33 -0
  6. data/Gemfile +1 -1
  7. data/Gemfile.lock +78 -71
  8. data/MIT-LICENSE +1 -1
  9. data/README.md +75 -16
  10. data/docs/assets.md +7 -4
  11. data/docs/css.md +47 -14
  12. data/docs/deployment.md +11 -0
  13. data/docs/engines.md +155 -0
  14. data/docs/es6.md +5 -5
  15. data/docs/testing.md +1 -1
  16. data/docs/troubleshooting.md +4 -4
  17. data/docs/v4-upgrade.md +132 -0
  18. data/docs/webpack.md +56 -3
  19. data/docs/yarn.md +12 -1
  20. data/gemfiles/Gemfile-rails-edge +1 -1
  21. data/gemfiles/Gemfile-rails.4.2.x +2 -2
  22. data/gemfiles/Gemfile-rails.5.0.x +2 -2
  23. data/gemfiles/Gemfile-rails.5.1.x +2 -2
  24. data/gemfiles/Gemfile-rails.5.2.x +10 -0
  25. data/lib/install/bin/webpack +5 -1
  26. data/lib/install/bin/webpack-dev-server +5 -1
  27. data/lib/install/coffee.rb +2 -2
  28. data/lib/install/config/.browserslistrc +1 -0
  29. data/lib/install/config/babel.config.js +70 -0
  30. data/lib/install/config/postcss.config.js +12 -0
  31. data/lib/install/config/webpacker.yml +26 -0
  32. data/lib/install/elm.rb +2 -2
  33. data/lib/install/erb.rb +2 -2
  34. data/lib/install/examples/react/babel.config.js +83 -0
  35. data/lib/install/examples/stimulus/application.js +1 -6
  36. data/lib/install/examples/stimulus/controllers/index.js +9 -0
  37. data/lib/install/examples/typescript/tsconfig.json +4 -0
  38. data/lib/install/examples/vue/hello_vue.js +6 -4
  39. data/lib/install/javascript/packs/application.js +8 -0
  40. data/lib/install/loaders/typescript.js +8 -3
  41. data/lib/install/loaders/vue.js +1 -8
  42. data/lib/install/react.rb +6 -19
  43. data/lib/install/template.rb +29 -30
  44. data/lib/install/typescript.rb +4 -4
  45. data/lib/install/vue.rb +14 -5
  46. data/lib/tasks/installers.rake +4 -2
  47. data/lib/tasks/webpacker/binstubs.rake +3 -2
  48. data/lib/tasks/webpacker/compile.rake +10 -5
  49. data/lib/tasks/webpacker/install.rake +3 -2
  50. data/lib/tasks/webpacker/verify_install.rake +1 -4
  51. data/lib/tasks/webpacker/yarn_install.rake +1 -1
  52. data/lib/webpacker/commands.rb +0 -1
  53. data/lib/webpacker/compiler.rb +17 -13
  54. data/lib/webpacker/configuration.rb +13 -5
  55. data/lib/webpacker/dev_server.rb +7 -10
  56. data/lib/webpacker/dev_server_proxy.rb +13 -6
  57. data/lib/webpacker/dev_server_runner.rb +13 -6
  58. data/lib/webpacker/helper.rb +78 -20
  59. data/lib/webpacker/manifest.rb +64 -21
  60. data/lib/webpacker/railtie.rb +16 -7
  61. data/lib/webpacker/runner.rb +3 -3
  62. data/lib/webpacker/version.rb +1 -1
  63. data/lib/webpacker/webpack_runner.rb +14 -3
  64. data/package.json +46 -34
  65. data/package/__tests__/config.js +37 -3
  66. data/package/__tests__/dev_server.js +15 -0
  67. data/package/__tests__/production.js +2 -2
  68. data/package/__tests__/staging.js +3 -3
  69. data/package/__tests__/test.js +2 -1
  70. data/package/config.js +21 -9
  71. data/package/config_types/config_list.js +5 -6
  72. data/package/dev_server.js +3 -1
  73. data/package/environments/__tests__/base.js +7 -5
  74. data/package/environments/base.js +84 -31
  75. data/package/environments/development.js +6 -2
  76. data/package/environments/production.js +46 -36
  77. data/package/rules/babel.js +10 -4
  78. data/package/rules/file.js +8 -3
  79. data/package/rules/index.js +7 -2
  80. data/package/rules/node_modules.js +23 -0
  81. data/package/utils/__tests__/get_style_rule.js +20 -0
  82. data/package/utils/deep_merge.js +5 -6
  83. data/package/utils/get_style_rule.js +29 -42
  84. data/package/utils/helpers.js +18 -6
  85. data/package/utils/objectify.js +1 -2
  86. data/test/compiler_test.rb +15 -3
  87. data/test/configuration_test.rb +9 -0
  88. data/test/dev_server_runner_test.rb +51 -0
  89. data/test/helper_test.rb +48 -5
  90. data/test/manifest_test.rb +14 -0
  91. data/test/rake_tasks_test.rb +34 -0
  92. data/test/test_app/config.ru +5 -0
  93. data/test/test_app/config/application.rb +1 -0
  94. data/test/test_app/config/webpack/development.js +0 -0
  95. data/test/test_app/config/webpacker.yml +20 -0
  96. data/test/test_app/config/webpacker_public_root.yml +19 -0
  97. data/test/test_app/package.json +13 -0
  98. data/test/test_app/public/packs/manifest.json +22 -1
  99. data/test/test_app/yarn.lock +11 -0
  100. data/test/test_helper.rb +1 -3
  101. data/test/webpack_runner_test.rb +51 -0
  102. data/yarn.lock +4077 -2816
  103. metadata +28 -6
  104. data/lib/install/config/.babelrc +0 -18
  105. data/lib/install/config/.postcssrc.yml +0 -3
  106. data/lib/install/examples/react/.babelrc +0 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99d9c3eb9fa58026b2fa47c4c2f43ee0c8d69cb476b1ea4fc1c8615135444d92
4
- data.tar.gz: 50c7982498e8955c5eef5877da86599600874abfe976f7a985df591c350df4d8
3
+ metadata.gz: c1667789e4776c2fbb15b9093b65bc99d5b0734677382ca46a8a24135654d1f1
4
+ data.tar.gz: 1985a2543ac40f68feecfb972b908913f6337c9ce73414227eaf8c5bec9529cf
5
5
  SHA512:
6
- metadata.gz: e12e68bf1ebdb90e203d20b90bc7a9664593e9643d3459bf4ff3810bea35e6fc1a9f29a8946a50c6f3765e342b74283edb267715e31154313ccd4c9a22eb458b
7
- data.tar.gz: 51f758aebcbd9f443c6eaae1cef267e90c57262a0dc3e17619cf24b84c04286d7891b58325db1646ea00c2b639d3047036227bac321a411b31416ce5702c900e
6
+ metadata.gz: d21492d39f14322937c10248472fca38f4fa9b04229475c05610f18fa3895c6f633c22045c320a7c35479d445e08759c8bce42b8f43984a9de586d15bb845971
7
+ data.tar.gz: 9d2fd59577c3a292b9ccc5720253acc75db824f6e700b0048bbeebece83aa91001680e7d7e111647f9339188cb40f42117867817cecc0928edd9443a3f3ba513
@@ -0,0 +1 @@
1
+ 6.14.4
@@ -3,14 +3,16 @@ language: ruby
3
3
  before_install:
4
4
  - gem update --system
5
5
  rvm:
6
- - 2.3.7
7
- - 2.4.4
8
- - 2.5.1
6
+ - 2.3.8
7
+ - 2.4.5
8
+ - 2.5.3
9
+ - 2.6.0
9
10
  - ruby-head
10
11
  gemfile:
11
12
  - gemfiles/Gemfile-rails.4.2.x
12
13
  - gemfiles/Gemfile-rails.5.0.x
13
14
  - gemfiles/Gemfile-rails.5.1.x
15
+ - gemfiles/Gemfile-rails.5.2.x
14
16
  - gemfiles/Gemfile-rails-edge
15
17
  cache:
16
18
  bundler: true
@@ -33,5 +35,11 @@ matrix:
33
35
  allow_failures:
34
36
  - gemfile: gemfiles/Gemfile-rails-edge
35
37
  exclude:
36
- - rvm: 2.3.7
38
+ - rvm: 2.3.8
37
39
  gemfile: gemfiles/Gemfile-rails-edge
40
+ - rvm: 2.4.5
41
+ gemfile: gemfiles/Gemfile-rails-edge
42
+ - rvm: 2.5.3
43
+ gemfile: gemfiles/Gemfile-rails-edge
44
+ - rvm: ruby-head
45
+ gemfile: gemfiles/Gemfile-rails.4.2.x
@@ -1,56 +1,268 @@
1
1
  **Please note that Webpacker 3.1.0 and 3.1.1 have some serious bugs so please consider using either 3.0.2 or 3.2.0**
2
2
 
3
- ## [3.6.0] - 2019-03-06
4
- See changes: https://github.com/rails/webpacker/compare/88a253ed42966eb2d5c997435e9396881513bce1...3-x-stable
3
+ ## [4.0.2] - 2019-03-06
5
4
 
5
+ - Bump the version on npm
6
6
 
7
- ## [3.5.5] - 2018-07-09
8
- See changes: https://github.com/rails/webpacker/compare/e8b197e36c77181ca2e4765c620faea59dcd0351...3-x-stable
7
+ ## [4.0.1] - 2019-03-04
8
+
9
+ ### Fixed
10
+
11
+ - Pre-release version installer
12
+
13
+
14
+ ## [4.0.0] - 2019-03-04
15
+
16
+ No changes in this release. See RC releases for changes.
17
+
18
+
19
+ ## [4.0.0.rc.8] - 2019-03-03
20
+
21
+ ### Fixed
22
+
23
+ - Re-enable source maps in production to make debugging in production
24
+ easier. Enabling source maps doesn't have drawbacks for most of the
25
+ applications since maps are compressed by default and aren't loaded
26
+ by browsers unless Dev Tools are opened.
27
+
28
+ Source maps can be disabled in any environment configuration, e.g:
29
+
30
+ ```js
31
+ // config/webpack/production.js
32
+
33
+ const environment = require('./environment')
34
+ environment.config.merge({ devtool: 'none' })
35
+
36
+ module.exports = environment.toWebpackConfig()
37
+ ```
38
+
39
+ - Reintroduced `context` to the file loader. Reverting the simpler paths change
40
+
41
+ - Updated file loader to have filename based on the path. This change
42
+ keeps the old behaviour intact i.e. let people use namespaces for media
43
+ inside `app/javascript` and also include media outside of `app/javascript`
44
+ with simpler paths, for example from `node_modules` or `app/assets`
45
+
46
+ ```bash
47
+ # Files inside app/javascript (i.e. packs source path)
48
+ # media/[full_path_relative_to_app_javascript]/name_of_the_asset_with_digest
49
+ media/images/google-97e897b3851e415bec4fd30c265eb3ce.jpg
50
+ media/images/rails-45b116b1f66cc5e6f9724e8f9a2db73d.png
51
+ media/images/some_namespace/google-97e897b3851e415bec4fd30c265eb3ce.jpg
52
+
53
+ # Files outside app/javascript (i.e. packs source path)
54
+ # media/[containing_folder_name]/name_of_the_asset_with_digest
55
+ media/some_assets/rails_assets-f0f7bbb5.png
56
+ media/webfonts/fa-brands-400-4b115e11.woff2
57
+ ```
58
+
59
+ This change is done so we don't end up paths like `media/_/assets/images/rails_assets-f0f7bbb5ef00110a0dcef7c2cb7d34a6.png` or `media/_/_/node_modules/foo-f0f7bbb5ef00110a0dcef7c2cb7d34a6.png` for media outside of
60
+ `app/javascript`
61
+
62
+
63
+ ## [4.0.0.rc.7] - 2019-01-25
64
+
65
+ ### Fixed
66
+
67
+ - Webpacker builds test app assets [#1908](https://github.com/rails/webpacker/issues/1908)
68
+
69
+
70
+ ## [4.0.0.rc.6] - 2019-01-25
71
+
72
+ ### Fixed
73
+
74
+ - Remove `context` from file loader in favour of simpler paths
75
+
76
+ ```rb
77
+ # before
78
+ "_/assets/images/avatar.png": "/packs/_/assets/images/avatar-057862c747f0fdbeae506bdd0516cad1.png"
79
+
80
+ # after
81
+ "media/avatar.png": "/packs/media/avatar-057862c747f0fdbeae506bdd0516cad1.png"
82
+ ```
83
+
84
+ To get old behaviour:
85
+
86
+ ```js
87
+ // config/webpack/environment.js
88
+
89
+ const { environment, config } = require('@rails/webpacker')
90
+ const { join } = require('path')
91
+
92
+ const fileLoader = environment.loaders.get('file')
93
+ fileLoader.use[0].options.name = '[path][name]-[hash].[ext]'
94
+ fileLoader.use[0].options.context = join(config.source_path) // optional if you don't want to expose full paths
95
+ ```
9
96
 
10
97
  ### Added
11
- - On CI, sort files & check modified w/ digest intead of mtime[#1522](https://github.com/rails/webpacker/pull/1522)
12
98
 
99
+ - Namespaces for compiled packs in the public directory
100
+
101
+ ```rb
102
+ # before
103
+ "runtime~hello_react" => "/packs/runtime~hello_react-da2baf7fd07b0e8b6d17.js"
104
+
105
+ # after
106
+ "runtime~hello_react" => "/packs/js/runtime~hello_react-da2baf7fd07b0e8b6d17.js"
107
+ ```
108
+
109
+ ## [4.0.0.rc.5] - 2019-01-21
110
+
111
+ ### Updated
112
+
113
+ - Gems and node dependencies
13
114
 
14
- ## [3.5.3] - 2018-05-03
115
+
116
+ ## [4.0.0.rc.4] - 2019-01-21
117
+
118
+ ### Added
119
+ - `stylesheet_packs_with_chunks_tag` helper, similar to javascript helper but for
120
+ loading stylesheets chunks.
121
+
122
+ ```erb
123
+ <%= stylesheet_packs_with_chunks_tag 'calendar', 'map', 'data-turbolinks-track': 'reload' %>
124
+
125
+ <link rel="stylesheet" media="screen" href="/packs/3-8c7ce31a.chunk.css" />
126
+ <link rel="stylesheet" media="screen" href="/packs/calendar-8c7ce31a.chunk.css" />
127
+ <link rel="stylesheet" media="screen" href="/packs/map-8c7ce31a.chunk.css" />
128
+ ```
129
+
130
+ **Important:** Pass all your pack names when using `stylesheet_packs_with_chunks_tag`
131
+ helper otherwise you will get duplicated chunks on the page.
132
+
133
+ ```erb
134
+ <%# DO %>
135
+ # <%= stylesheet_packs_with_chunks_tag 'calendar', 'map' %>
136
+ <%# DON'T %>
137
+ # <%= stylesheet_packs_with_chunks_tag 'calendar' %>
138
+ # <%= stylesheet_packs_with_chunks_tag 'map' %>
139
+ ```
140
+
141
+
142
+ ## [4.0.0.rc.3] - 2019-01-17
15
143
 
16
144
  ### Fixed
17
- - Relax Javascript package dependencies [#1466](https://github.com/rails/webpacker/pull/1466#issuecomment-386336605)
145
+ - Issue with javascript_pack_tag asset duplication [#1898](https://github.com/rails/webpacker/pull/1898)
18
146
 
19
147
 
20
- ## [3.5.2] - 2018-04-29
148
+ ### Added
149
+ - `javascript_packs_with_chunks_tag` helper, which creates html tags
150
+ for a pack and all the dependent chunks, when using splitchunks.
21
151
 
22
- - Pin Javascript package to 3.5.x
152
+ ```erb
153
+ <%= javascript_packs_with_chunks_tag 'calendar', 'map', 'data-turbolinks-track': 'reload' %>
23
154
 
155
+ <script src="/packs/vendor-16838bab065ae1e314.js" data-turbolinks-track="reload"></script>
156
+ <script src="/packs/calendar~runtime-16838bab065ae1e314.js" data-turbolinks-track="reload"></script>
157
+ <script src="/packs/calendar-1016838bab065ae1e314.js" data-turbolinks-track="reload"></script>
158
+ <script src="/packs/map~runtime-16838bab065ae1e314.js" data-turbolinks-track="reload"></script>
159
+ <script src="/packs/map-16838bab065ae1e314.js" data-turbolinks-track="reload"></script>
160
+ ```
24
161
 
25
- ## [3.5.1] - 2018-04-29
162
+ **Important:** Pass all your pack names when using `javascript_packs_with_chunks_tag`
163
+ helper otherwise you will get duplicated chunks on the page.
26
164
 
27
- - Upgraded gems and Javascript packages
165
+ ```erb
166
+ <%# DO %>
167
+ <%= javascript_packs_with_chunks_tag 'calendar', 'map' %>
28
168
 
169
+ <%# DON'T %>
170
+ <%= javascript_packs_with_chunks_tag 'calendar' %>
171
+ <%= javascript_packs_with_chunks_tag 'map' %>
172
+ ```
29
173
 
30
- ## [3.5.0] - 2018-04-29
174
+ ## [4.0.0.rc.2] - 2018-12-15
31
175
 
32
176
  ### Fixed
33
- - Remove compilation digest file if webpack command fails [#1399](https://github.com/rails/webpacker/pull/1399)
34
- - Handle http dev_server setting properly in the proxy [#1420](https://github.com/rails/webpacker/pull/1420)
35
- - Use correct protocol [#1425](https://github.com/rails/webpacker/pull/1425)
177
+ - Disable integrity hash generation [#1835](https://github.com/rails/webpacker/issues/1835)
178
+
179
+
180
+ ## [4.0.0.rc.1] - 2018-12-14
181
+
182
+ ### Breaking changes
183
+
184
+ - Order of rules changed so you might have to change append to prepend,
185
+ depending on how you want to process packs [#1823](https://github.com/rails/webpacker/pull/1823)
186
+ ```js
187
+ environment.loaders.prepend()
188
+ ```
189
+ - Separate CSS extraction from build environment [#1625](https://github.com/rails/webpacker/pull/1625)
190
+ ```yml
191
+ # Extract and emit a css file
192
+ extract_css: true
193
+ ```
194
+ - Separate rule to compile node modules
195
+ (fixes cases where ES6 libraries were included in the app code) [#1823](https://github.com/rails/webpacker/pull/1823).
196
+
197
+ In previous versions only application code was transpiled. Now everything in `node_modules` is transpiled with Babel. In some cases it could break your build (known issue with `mapbox-gl` package being broken by Babel, https://github.com/mapbox/mapbox-gl-js/issues/3422).
198
+
199
+ [`nodeModules` loader](https://github.com/rails/webpacker/pull/1823/files#diff-456094c8451b5774db50028dfecf4aa8) ignores `config.babel.js` and uses hard-coded `'@babel/preset-env', { modules: false }` config.
200
+
201
+ To keep previous behavior, remove `nodeModules` loader specifying `environment.loaders.delete('nodeModules');` in your `config/webpack/environment.js` file.
202
+
203
+ - File loader extensions API [#1823](https://github.com/rails/webpacker/pull/1823)
204
+ ```yml
205
+ # webpacker.yml
206
+ static_assets_extensions:
207
+ - .pdf
208
+ # etc..
209
+ ```
36
210
 
37
211
  ### Added
38
- - `image_pack_tag` helper [#1400](https://github.com/rails/webpacker/pull/1400)
39
- - devserver proxy for custom environments [#1415](https://github.com/rails/webpacker/pull/1415)
40
- - Rails webpacker:info task [#1416](https://github.com/rails/webpacker/pull/1416)
41
- - Include `RAILS_RELATIVE_URL_ROOT` environment variable in publicPath [#1428](https://github.com/rails/webpacker/pull/1428)
42
212
 
43
- Complete list of changes: [#1464](https://github.com/rails/webpacker/pull/1464)
213
+ - Move `.babelrc` and `.postcssrc` to `.js` variant [#1822](https://github.com/rails/webpacker/pull/1822)
214
+ - Use postcss safe parser when optimising css assets [#1822](https://github.com/rails/webpacker/pull/1822)
215
+ - Add split chunks api (undocumented)
216
+ ```js
217
+ const { environment } = require('@rails/webpacker')
218
+ // Enable with default config
219
+ environment.splitChunks()
220
+ // Configure via a callback
221
+ environment.splitChunks((config) => Object.assign({}, config, { optimization: { splitChunks: false }}))
222
+ ```
223
+ - Allow changing static file extensions using webpacker.yml (undocumented)
224
+
225
+ ## [4.0.0-pre.3] - 2018-10-01
44
226
 
227
+ ### Added
228
+
229
+ - Move supported browsers configuration to [.browserslistrc](https://github.com/browserslist/browserslist#queries)
230
+
231
+ ### Breaking changes
45
232
 
46
- ## [3.4.3] - 2018-04-3
233
+ - postcss-next is replaced with postcss-preset-env
234
+ - babel@7
47
235
 
48
236
  ### Fixed
49
- - Lock webpacker version in installer [#1401](https://github.com/rails/webpacker/issues/1401)
237
+
238
+ - Bring back test env [#1563](https://github.com/rails/webpacker/pull/1563)
239
+
240
+ Please see a list of [commits](https://github.com/rails/webpacker/compare/2dd68f0273074aadb3f869c4c30369d5e4e3fea7...master)
241
+
242
+ ## [4.0.0-pre.2] - 2018-04-2
243
+
244
+ ### Fixed
245
+
246
+ - Webpack dev server version in installer
247
+
248
+
249
+ ## [4.0.0-pre.1] - 2018-04-2
250
+
251
+ Pre-release to try out webpack 4.0 support
252
+
253
+ ### Added
254
+ - Webpack 4.0 support [#1376](https://github.com/rails/webpacker/pull/1316)
255
+
256
+ ### Fixed
257
+ - Remove compilation digest file if webpack command fails[#1398](https://github.com/rails/webpacker/issues/1398)
258
+
259
+
260
+ Please refer to [3-x-stable](https://github.com/rails/webpacker/tree/3-x-stable) branch
261
+ for further releases and changelogs:
50
262
 
51
263
  ## [3.4.1] - 2018-03-24
52
264
 
53
- ## Fixed
265
+ ### Fixed
54
266
  - Yarn integrity check in development [#1374](https://github.com/rails/webpacker/issues/1374)
55
267
 
56
268
 
@@ -58,7 +270,7 @@ Complete list of changes: [#1464](https://github.com/rails/webpacker/pull/1464)
58
270
 
59
271
  **Please use 3.4.1 instead**
60
272
 
61
- ## Added
273
+ ### Added
62
274
  - Support for custom Rails environments [#1359](https://github.com/rails/webpacker/pull/1359)
63
275
 
64
276
  *This could break the compilation if you set NODE_ENV to custom environment. Now, NODE_ENV only understands production or development mode*
@@ -66,7 +278,7 @@ Complete list of changes: [#1464](https://github.com/rails/webpacker/pull/1464)
66
278
 
67
279
  ## [3.3.1] - 2018-03-12
68
280
 
69
- ## Fixed
281
+ ### Fixed
70
282
 
71
283
  - Use webpack dev server 2.x until webpacker supports webpack 4.x [#1338](https://github.com/rails/webpacker/issues/1338)
72
284
 
@@ -121,7 +333,7 @@ And, bunch of bug fixes [See changes](https://github.com/rails/webpacker/compare
121
333
 
122
334
  - Fix checking 'webpack' binstub on Windows [#1123](https://github.com/rails/webpacker/pull/1123)
123
335
 
124
- - silence yarn output if checking is successfull [#1131](https://github.com/rails/webpacker/pull/1131)
336
+ - silence yarn output if checking is successful [#1131](https://github.com/rails/webpacker/pull/1131)
125
337
 
126
338
  - Update uglifyJs plugin to support ES6 [#1194](https://github.com/rails/webpacker/pull/1194)
127
339
 
@@ -339,7 +551,7 @@ without sprockets
339
551
  - Allow dev server connect timeout (in seconds) to be configurable, default: 0.01
340
552
 
341
553
  ```rb
342
- # Change to 1s
554
+ # Change to 1s
343
555
  Webpacker.dev_server.connect_timeout = 1
344
556
  ```
345
557
 
@@ -347,7 +559,7 @@ Webpacker.dev_server.connect_timeout = 1
347
559
 
348
560
  - Binstubs [#833](https://github.com/rails/webpacker/pull/833)
349
561
 
350
- - Allow dev server settings to be overriden by env variables [#843](https://github.com/rails/webpacker/pull/843)
562
+ - Allow dev server settings to be overridden by env variables [#843](https://github.com/rails/webpacker/pull/843)
351
563
 
352
564
  - A new `lookup` method to manifest to perform lookup without raise and return `nil`
353
565
 
@@ -0,0 +1,33 @@
1
+ ## Setting Up a Development Environment
2
+
3
+ 1. Install [Yarn](https://yarnpkg.com/)
4
+
5
+ 2. Run the following commands to set up the development environment.
6
+ ```
7
+ bundle install
8
+ yarn
9
+ ```
10
+
11
+ ## Making sure your changes pass all tests
12
+ There are a number of automated checks which run on Travis CI when a pull request is created.
13
+ You can run those checks on your own locally to make sure that your changes would not break the CI build.
14
+
15
+ ### 1. Check the code for JavaScript style violations
16
+ ```
17
+ yarn lint
18
+ ```
19
+
20
+ ### 2. Check the code for Ruby style violations
21
+ ```
22
+ bundle exec rubocop
23
+ ```
24
+
25
+ ### 3. Run the JavaScript test suite
26
+ ```
27
+ yarn test
28
+ ```
29
+
30
+ ### 4. Run the Ruby test suite
31
+ ```
32
+ bundle exec rake test
33
+ ```
data/Gemfile CHANGED
@@ -4,7 +4,7 @@ gemspec
4
4
 
5
5
  gem "rails"
6
6
  gem "rake", ">= 11.1"
7
- gem "rubocop", ">= 0.49", require: false
7
+ gem "rubocop", git: "https://github.com/rubocop-hq/rubocop.git", require: false
8
8
  gem "rack-proxy", require: false
9
9
 
10
10
  group :test do
@@ -1,7 +1,21 @@
1
+ GIT
2
+ remote: https://github.com/rubocop-hq/rubocop.git
3
+ revision: dc69686abf10d9f38ed3a39037fab76ae8874138
4
+ specs:
5
+ rubocop (0.65.0)
6
+ jaro_winkler (~> 1.5.1)
7
+ parallel (~> 1.10)
8
+ parser (>= 2.5, != 2.5.1.1)
9
+ powerpack (~> 0.1)
10
+ psych (>= 3.1.0)
11
+ rainbow (>= 2.2.2, < 4.0)
12
+ ruby-progressbar (~> 1.7)
13
+ unicode-display_width (~> 1.4.0)
14
+
1
15
  PATH
2
16
  remote: .
3
17
  specs:
4
- webpacker (3.6.0)
18
+ webpacker (4.0.2)
5
19
  activesupport (>= 4.2)
6
20
  rack-proxy (>= 0.6.1)
7
21
  railties (>= 4.2)
@@ -9,43 +23,43 @@ PATH
9
23
  GEM
10
24
  remote: https://rubygems.org/
11
25
  specs:
12
- actioncable (5.2.0)
13
- actionpack (= 5.2.0)
26
+ actioncable (5.2.2)
27
+ actionpack (= 5.2.2)
14
28
  nio4r (~> 2.0)
15
29
  websocket-driver (>= 0.6.1)
16
- actionmailer (5.2.0)
17
- actionpack (= 5.2.0)
18
- actionview (= 5.2.0)
19
- activejob (= 5.2.0)
30
+ actionmailer (5.2.2)
31
+ actionpack (= 5.2.2)
32
+ actionview (= 5.2.2)
33
+ activejob (= 5.2.2)
20
34
  mail (~> 2.5, >= 2.5.4)
21
35
  rails-dom-testing (~> 2.0)
22
- actionpack (5.2.0)
23
- actionview (= 5.2.0)
24
- activesupport (= 5.2.0)
36
+ actionpack (5.2.2)
37
+ actionview (= 5.2.2)
38
+ activesupport (= 5.2.2)
25
39
  rack (~> 2.0)
26
40
  rack-test (>= 0.6.3)
27
41
  rails-dom-testing (~> 2.0)
28
42
  rails-html-sanitizer (~> 1.0, >= 1.0.2)
29
- actionview (5.2.0)
30
- activesupport (= 5.2.0)
43
+ actionview (5.2.2)
44
+ activesupport (= 5.2.2)
31
45
  builder (~> 3.1)
32
46
  erubi (~> 1.4)
33
47
  rails-dom-testing (~> 2.0)
34
48
  rails-html-sanitizer (~> 1.0, >= 1.0.3)
35
- activejob (5.2.0)
36
- activesupport (= 5.2.0)
49
+ activejob (5.2.2)
50
+ activesupport (= 5.2.2)
37
51
  globalid (>= 0.3.6)
38
- activemodel (5.2.0)
39
- activesupport (= 5.2.0)
40
- activerecord (5.2.0)
41
- activemodel (= 5.2.0)
42
- activesupport (= 5.2.0)
52
+ activemodel (5.2.2)
53
+ activesupport (= 5.2.2)
54
+ activerecord (5.2.2)
55
+ activemodel (= 5.2.2)
56
+ activesupport (= 5.2.2)
43
57
  arel (>= 9.0)
44
- activestorage (5.2.0)
45
- actionpack (= 5.2.0)
46
- activerecord (= 5.2.0)
58
+ activestorage (5.2.2)
59
+ actionpack (= 5.2.2)
60
+ activerecord (= 5.2.2)
47
61
  marcel (~> 0.3.1)
48
- activesupport (5.2.0)
62
+ activesupport (5.2.2)
49
63
  concurrent-ruby (~> 1.0, >= 1.0.2)
50
64
  i18n (>= 0.7, < 2)
51
65
  minitest (~> 5.1)
@@ -53,74 +67,67 @@ GEM
53
67
  arel (9.0.0)
54
68
  ast (2.4.0)
55
69
  builder (3.2.3)
56
- byebug (10.0.2)
57
- concurrent-ruby (1.0.5)
70
+ byebug (11.0.0)
71
+ concurrent-ruby (1.1.4)
58
72
  crass (1.0.4)
59
- erubi (1.7.1)
60
- globalid (0.4.1)
73
+ erubi (1.8.0)
74
+ globalid (0.4.2)
61
75
  activesupport (>= 4.2.0)
62
- i18n (1.0.1)
76
+ i18n (1.5.3)
63
77
  concurrent-ruby (~> 1.0)
64
- jaro_winkler (1.5.1)
65
- loofah (2.2.2)
78
+ jaro_winkler (1.5.2)
79
+ loofah (2.2.3)
66
80
  crass (~> 1.0.2)
67
81
  nokogiri (>= 1.5.9)
68
- mail (2.7.0)
82
+ mail (2.7.1)
69
83
  mini_mime (>= 0.1.1)
70
- marcel (0.3.2)
84
+ marcel (0.3.3)
71
85
  mimemagic (~> 0.3.2)
72
- method_source (0.9.0)
73
- mimemagic (0.3.2)
74
- mini_mime (1.0.0)
75
- mini_portile2 (2.3.0)
86
+ method_source (0.9.2)
87
+ mimemagic (0.3.3)
88
+ mini_mime (1.0.1)
89
+ mini_portile2 (2.4.0)
76
90
  minitest (5.11.3)
77
91
  nio4r (2.3.1)
78
- nokogiri (1.8.4)
79
- mini_portile2 (~> 2.3.0)
80
- parallel (1.12.1)
81
- parser (2.5.1.0)
92
+ nokogiri (1.10.1)
93
+ mini_portile2 (~> 2.4.0)
94
+ parallel (1.14.0)
95
+ parser (2.6.0.0)
82
96
  ast (~> 2.4.0)
83
97
  powerpack (0.1.2)
84
- rack (2.0.5)
85
- rack-proxy (0.6.4)
98
+ psych (3.1.0)
99
+ rack (2.0.6)
100
+ rack-proxy (0.6.5)
86
101
  rack
87
- rack-test (1.0.0)
102
+ rack-test (1.1.0)
88
103
  rack (>= 1.0, < 3)
89
- rails (5.2.0)
90
- actioncable (= 5.2.0)
91
- actionmailer (= 5.2.0)
92
- actionpack (= 5.2.0)
93
- actionview (= 5.2.0)
94
- activejob (= 5.2.0)
95
- activemodel (= 5.2.0)
96
- activerecord (= 5.2.0)
97
- activestorage (= 5.2.0)
98
- activesupport (= 5.2.0)
104
+ rails (5.2.2)
105
+ actioncable (= 5.2.2)
106
+ actionmailer (= 5.2.2)
107
+ actionpack (= 5.2.2)
108
+ actionview (= 5.2.2)
109
+ activejob (= 5.2.2)
110
+ activemodel (= 5.2.2)
111
+ activerecord (= 5.2.2)
112
+ activestorage (= 5.2.2)
113
+ activesupport (= 5.2.2)
99
114
  bundler (>= 1.3.0)
100
- railties (= 5.2.0)
115
+ railties (= 5.2.2)
101
116
  sprockets-rails (>= 2.0.0)
102
117
  rails-dom-testing (2.0.3)
103
118
  activesupport (>= 4.2.0)
104
119
  nokogiri (>= 1.6)
105
120
  rails-html-sanitizer (1.0.4)
106
121
  loofah (~> 2.2, >= 2.2.2)
107
- railties (5.2.0)
108
- actionpack (= 5.2.0)
109
- activesupport (= 5.2.0)
122
+ railties (5.2.2)
123
+ actionpack (= 5.2.2)
124
+ activesupport (= 5.2.2)
110
125
  method_source
111
126
  rake (>= 0.8.7)
112
- thor (>= 0.18.1, < 2.0)
127
+ thor (>= 0.19.0, < 2.0)
113
128
  rainbow (3.0.0)
114
- rake (12.3.1)
115
- rubocop (0.58.0)
116
- jaro_winkler (~> 1.5.1)
117
- parallel (~> 1.10)
118
- parser (>= 2.5)
119
- powerpack (~> 0.1)
120
- rainbow (>= 2.2.2, < 4.0)
121
- ruby-progressbar (~> 1.7)
122
- unicode-display_width (~> 1.0, >= 1.0.1)
123
- ruby-progressbar (1.9.0)
129
+ rake (12.3.2)
130
+ ruby-progressbar (1.10.0)
124
131
  sprockets (3.7.2)
125
132
  concurrent-ruby (~> 1.0)
126
133
  rack (> 1, < 3)
@@ -128,11 +135,11 @@ GEM
128
135
  actionpack (>= 4.0)
129
136
  activesupport (>= 4.0)
130
137
  sprockets (>= 3.0.0)
131
- thor (0.20.0)
138
+ thor (0.20.3)
132
139
  thread_safe (0.3.6)
133
140
  tzinfo (1.2.5)
134
141
  thread_safe (~> 0.1)
135
- unicode-display_width (1.4.0)
142
+ unicode-display_width (1.4.1)
136
143
  websocket-driver (0.7.0)
137
144
  websocket-extensions (>= 0.1.0)
138
145
  websocket-extensions (0.1.3)
@@ -147,7 +154,7 @@ DEPENDENCIES
147
154
  rack-proxy
148
155
  rails
149
156
  rake (>= 11.1)
150
- rubocop (>= 0.49)
157
+ rubocop!
151
158
  webpacker!
152
159
 
153
160
  BUNDLED WITH