webpacker 4.0.7 → 4.2.2
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.
- checksums.yaml +4 -4
- data/.node-version +1 -1
- data/.rubocop.yml +2 -1
- data/.travis.yml +7 -4
- data/CHANGELOG.md +226 -137
- data/Gemfile.lock +78 -59
- data/README.md +110 -3
- data/docs/css.md +12 -0
- data/docs/deployment.md +38 -9
- data/docs/docker.md +25 -6
- data/docs/engines.md +40 -3
- data/docs/es6.md +19 -1
- data/docs/troubleshooting.md +37 -9
- data/docs/typescript.md +8 -5
- data/docs/webpack-dev-server.md +1 -1
- data/docs/webpack.md +18 -3
- data/gemfiles/Gemfile-rails.6.0.x +9 -0
- data/lib/install/bin/webpack +0 -1
- data/lib/install/bin/webpack-dev-server +0 -1
- data/lib/install/coffee.rb +1 -1
- data/lib/install/config/babel.config.js +10 -10
- data/lib/install/config/webpacker.yml +2 -1
- data/lib/install/elm.rb +1 -1
- data/lib/install/erb.rb +2 -2
- data/lib/install/examples/angular/hello_angular/polyfills.ts +2 -2
- data/lib/install/examples/react/babel.config.js +16 -14
- data/lib/install/examples/svelte/app.svelte +11 -0
- data/lib/install/examples/svelte/hello_svelte.js +20 -0
- data/lib/install/loaders/elm.js +9 -6
- data/lib/install/loaders/svelte.js +9 -0
- data/lib/install/loaders/typescript.js +1 -1
- data/lib/install/svelte.rb +29 -0
- data/lib/install/template.rb +1 -1
- data/lib/install/typescript.rb +1 -1
- data/lib/install/vue.rb +1 -1
- data/lib/tasks/installers.rake +1 -0
- data/lib/tasks/webpacker.rake +2 -0
- data/lib/tasks/webpacker/clean.rake +19 -0
- data/lib/tasks/webpacker/compile.rake +2 -10
- data/lib/tasks/webpacker/yarn_install.rake +15 -0
- data/lib/webpacker.rb +9 -1
- data/lib/webpacker/commands.rb +29 -1
- data/lib/webpacker/compiler.rb +15 -8
- data/lib/webpacker/configuration.rb +9 -1
- data/lib/webpacker/dev_server.rb +1 -1
- data/lib/webpacker/dev_server_proxy.rb +2 -8
- data/lib/webpacker/env.rb +1 -1
- data/lib/webpacker/helper.rb +39 -13
- data/lib/webpacker/railtie.rb +6 -0
- data/lib/webpacker/version.rb +1 -1
- data/package.json +36 -36
- data/package/__tests__/config.js +0 -23
- data/package/config.js +2 -10
- data/package/config_types/config_list.js +3 -3
- data/package/config_types/config_object.js +1 -1
- data/package/environments/base.js +2 -2
- data/package/environments/development.js +1 -1
- data/package/environments/production.js +12 -0
- data/package/rules/babel.js +1 -1
- data/package/rules/node_modules.js +2 -2
- data/package/rules/sass.js +1 -1
- data/package/utils/__tests__/get_style_rule.js +9 -0
- data/package/utils/deep_merge.js +5 -5
- data/package/utils/get_style_rule.js +7 -12
- data/package/utils/helpers.js +9 -9
- data/test/command_test.rb +6 -0
- data/test/compiler_test.rb +5 -6
- data/test/configuration_test.rb +36 -27
- data/test/dev_server_test.rb +22 -0
- data/test/helper_test.rb +34 -0
- data/test/rake_tasks_test.rb +6 -0
- data/test/test_app/bin/webpack +0 -1
- data/test/test_app/bin/webpack-dev-server +0 -1
- data/test/test_app/config/webpacker.yml +1 -0
- data/test/test_app/public/packs/manifest.json +3 -0
- data/webpacker.gemspec +1 -0
- data/yarn.lock +1934 -1634
- metadata +24 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 123810c157dda2d179ec4c3b27701cf29ade3fbf5a122d08eab68fa6b8c4b8a7
|
4
|
+
data.tar.gz: 6c120aead9282b96fbf070c216d0c2395249deea3ee135f764299d96fd14b423
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 04ede9ec043442d4d59a06e60f04fef3483531df5f1f6afbcc175f4252132421b7bd852c637e1be1427508799c5065fad0ea7fe47d5322f56435951a3142b932
|
7
|
+
data.tar.gz: 3ac3f4e8b995982861fa0e5d0771e8244c2f644245dfb8b02b0abccaf3e1485f4677bcd978ac509ebbba2817555ead6d8f92ab9ac02e8ec95c5205b43ac5f7a7
|
data/.node-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
8.16.0
|
data/.rubocop.yml
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require: rubocop-performance
|
1
2
|
AllCops:
|
2
3
|
TargetRubyVersion: 2.2
|
3
4
|
# RuboCop has a bunch of cops enabled by default. This setting tells RuboCop
|
@@ -71,7 +72,7 @@ Layout/SpaceAroundOperators:
|
|
71
72
|
Enabled: true
|
72
73
|
|
73
74
|
Layout/SpaceBeforeFirstArg:
|
74
|
-
|
75
|
+
Enabled: true
|
75
76
|
|
76
77
|
# Defining a method with parameters needs parentheses.
|
77
78
|
Style/MethodDefParentheses:
|
data/.travis.yml
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
language: ruby
|
2
|
-
bundler_args: --jobs 3 --retry 3
|
3
2
|
dist: xenial
|
4
3
|
before_install:
|
5
4
|
- gem install rubygems-update && update_rubygems
|
@@ -7,19 +6,19 @@ before_install:
|
|
7
6
|
# v1.17.3. This is just for Ruby 2.5 which ships with bundler 2.x on Travis
|
8
7
|
# CI while Ruby 2.6 does not.
|
9
8
|
# https://github.com/travis-ci/travis-rubies/issues/57#issuecomment-458981237
|
10
|
-
- yes | rvm @global do gem uninstall bundler --all
|
11
9
|
- yes | rvm @global do gem install bundler -v 1.17.3 || true
|
12
10
|
rvm:
|
13
11
|
- 2.3.8
|
14
12
|
- 2.4.6
|
15
13
|
- 2.5.5
|
16
|
-
- 2.6.
|
14
|
+
- 2.6.3
|
17
15
|
- ruby-head
|
18
16
|
gemfile:
|
19
17
|
- gemfiles/Gemfile-rails.4.2.x
|
20
18
|
- gemfiles/Gemfile-rails.5.0.x
|
21
19
|
- gemfiles/Gemfile-rails.5.1.x
|
22
20
|
- gemfiles/Gemfile-rails.5.2.x
|
21
|
+
- gemfiles/Gemfile-rails.6.0.x
|
23
22
|
- gemfiles/Gemfile-rails-edge
|
24
23
|
cache:
|
25
24
|
bundler: true
|
@@ -28,7 +27,7 @@ cache:
|
|
28
27
|
yarn: true
|
29
28
|
|
30
29
|
install:
|
31
|
-
- bundle install
|
30
|
+
- bundle install --jobs 3 --retry 3
|
32
31
|
- nvm install 10
|
33
32
|
- node -v
|
34
33
|
- npm i -g yarn
|
@@ -51,3 +50,7 @@ matrix:
|
|
51
50
|
gemfile: gemfiles/Gemfile-rails-edge
|
52
51
|
- rvm: ruby-head
|
53
52
|
gemfile: gemfiles/Gemfile-rails.4.2.x
|
53
|
+
- rvm: 2.3.8
|
54
|
+
gemfile: gemfiles/Gemfile-rails.6.0.x
|
55
|
+
- rvm: 2.4.6
|
56
|
+
gemfile: gemfiles/Gemfile-rails.6.0.x
|
data/CHANGELOG.md
CHANGED
@@ -1,10 +1,36 @@
|
|
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
|
+
**Please note that Webpacker 4.1.0 has an installer bug. Please use 4.2.0 or above**
|
4
|
+
|
5
|
+
## [[4.2.2]](https://github.com/rails/webpacker/compare/v4.2.1...v4.2.2) - 2019-12-09
|
6
|
+
|
7
|
+
- Fixed issue with webpack clean task for nested assets [#2391](https://github.com/rails/webpacker/pull/2391)
|
8
|
+
|
9
|
+
## [[4.2.1]](https://github.com/rails/webpacker/compare/v4.2.0...v4.2.1) - 2019-12-09
|
10
|
+
|
11
|
+
- Fixed issue with webpack clean task [#2389](https://github.com/rails/webpacker/pull/2389)
|
12
|
+
|
13
|
+
## [[4.2.0]](https://github.com/rails/webpacker/compare/v4.1.0...v4.2.0) - 2019-11-12
|
14
|
+
|
15
|
+
- Fixed installer bug [#2366](https://github.com/rails/webpacker/pull/2366)
|
16
|
+
|
17
|
+
## [[4.1.0]](https://github.com/rails/webpacker/compare/v4.0.7...v4.1.0) - 2019-11-12
|
18
|
+
|
19
|
+
- Added favicon_pack_tag to generate favicon links [#2281](https://github.com/rails/webpacker/pull/2281)
|
20
|
+
- Add support for Brotli compression [#2273](https://github.com/rails/webpacker/pull/2273)
|
21
|
+
- Support .(sass|scss).erb [#2259](https://github.com/rails/webpacker/pull/2259)
|
22
|
+
- Elm: Enable production optimizations when compiling in production [#2234](https://github.com/rails/webpacker/pull/2234)
|
23
|
+
- fixes webpacker:clean erroring because of nested hashes [#2318](https://github.com/rails/webpacker/pull/2318)
|
24
|
+
- Revert of production env enforcement [#2341](https://github.com/rails/webpacker/pull/2341)
|
25
|
+
- Add a preload_pack_asset helper [#2124](https://github.com/rails/webpacker/pull/2124)
|
26
|
+
- Record the compilation digest even on webpack error [#2117](https://github.com/rails/webpacker/pull/2117)
|
27
|
+
- See more changes [here](https://github.com/rails/webpacker/compare/v4.0.7...v4.1.0)
|
28
|
+
|
3
29
|
## [[4.0.7]](https://github.com/rails/webpacker/compare/v4.0.6...v4.0.7) - 2019-06-03
|
4
30
|
|
5
31
|
- Prevent `@babel/plugin-transform-runtime` from rewriting babel helpers in core-js. Remove unneeded runtime `@babel/runtime-corejs3` [#2116](https://github.com/rails/webpacker/pull/2116)
|
6
|
-
- Fix for: [#2109 Uncaught TypeError:
|
7
|
-
- `@babel/preset-env` should contain `corejs: 3`
|
32
|
+
- Fix for: [#2109 Uncaught TypeError: **webpack_require**(...) is not a function](https://github.com/rails/webpacker/issues/2109): **If you are upgrading**, please check your `babel.config.js` against the [default `babel.config.js`](https://github.com/rails/webpacker/blob/master/lib/install/config/babel.config.js):
|
33
|
+
- `@babel/preset-env` should contain `corejs: 3`
|
8
34
|
- `@babel/plugin-transform-runtime` should contain `corejs: false`
|
9
35
|
- Removed unneeded runtime `@babel/runtime-corejs3`
|
10
36
|
|
@@ -26,22 +52,25 @@ Please see the diff
|
|
26
52
|
|
27
53
|
##### Breaking changes (for pre-existing apps)
|
28
54
|
|
29
|
-
|
55
|
+
- [`@babel/polyfill`](https://babeljs.io/docs/en/next/babel-polyfill.html) [doesn't make it possible to provide a smooth migration path from `core-js@2` to `core-js@3`](https://github.com/zloirock/core-js/blob/master/docs/2019-03-19-core-js-3-babel-and-a-look-into-the-future.md#babelpolyfill): for this reason, it was decided to deprecate `@babel/polyfill` in favor of separate inclusion of required parts of `core-js` and `regenerator-runtime`. [#2031](https://github.com/rails/webpacker/pull/2031)
|
30
56
|
|
31
57
|
In each of your `/packs/*.js` files, change this:
|
58
|
+
|
32
59
|
```js
|
33
|
-
import
|
60
|
+
import '@babel/polyfill'
|
34
61
|
```
|
62
|
+
|
35
63
|
to this:
|
64
|
+
|
36
65
|
```js
|
37
|
-
import
|
38
|
-
import
|
66
|
+
import 'core-js/stable'
|
67
|
+
import 'regenerator-runtime/runtime'
|
39
68
|
```
|
40
69
|
|
41
|
-
Don't forget install those dependencies directly!
|
70
|
+
Don't forget to install those dependencies directly!
|
42
71
|
|
43
72
|
```sh
|
44
|
-
yarn add
|
73
|
+
yarn add core-js regenerator-runtime
|
45
74
|
```
|
46
75
|
|
47
76
|
## [4.0.2] - 2019-03-06
|
@@ -54,12 +83,10 @@ yarn add --save core-js regenerator-runtime
|
|
54
83
|
|
55
84
|
- Pre-release version installer
|
56
85
|
|
57
|
-
|
58
86
|
## [4.0.0] - 2019-03-04
|
59
87
|
|
60
88
|
No changes in this release. See RC releases for changes.
|
61
89
|
|
62
|
-
|
63
90
|
## [4.0.0.rc.8] - 2019-03-03
|
64
91
|
|
65
92
|
### Fixed
|
@@ -83,9 +110,9 @@ module.exports = environment.toWebpackConfig()
|
|
83
110
|
- Reintroduced `context` to the file loader. Reverting the simpler paths change
|
84
111
|
|
85
112
|
- Updated file loader to have filename based on the path. This change
|
86
|
-
keeps the old behaviour intact i.e. let people use namespaces for media
|
87
|
-
inside `app/javascript` and also include media outside of `app/javascript`
|
88
|
-
with simpler paths, for example from `node_modules` or `app/assets`
|
113
|
+
keeps the old behaviour intact i.e. let people use namespaces for media
|
114
|
+
inside `app/javascript` and also include media outside of `app/javascript`
|
115
|
+
with simpler paths, for example from `node_modules` or `app/assets`
|
89
116
|
|
90
117
|
```bash
|
91
118
|
# Files inside app/javascript (i.e. packs source path)
|
@@ -103,14 +130,12 @@ media/webfonts/fa-brands-400-4b115e11.woff2
|
|
103
130
|
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
|
104
131
|
`app/javascript`
|
105
132
|
|
106
|
-
|
107
133
|
## [4.0.0.rc.7] - 2019-01-25
|
108
134
|
|
109
135
|
### Fixed
|
110
136
|
|
111
137
|
- Webpacker builds test app assets [#1908](https://github.com/rails/webpacker/issues/1908)
|
112
138
|
|
113
|
-
|
114
139
|
## [4.0.0.rc.6] - 2019-01-25
|
115
140
|
|
116
141
|
### Fixed
|
@@ -156,12 +181,12 @@ fileLoader.use[0].options.context = join(config.source_path) // optional if you
|
|
156
181
|
|
157
182
|
- Gems and node dependencies
|
158
183
|
|
159
|
-
|
160
184
|
## [4.0.0.rc.4] - 2019-01-21
|
161
185
|
|
162
186
|
### Added
|
163
|
-
|
164
|
-
|
187
|
+
|
188
|
+
- `stylesheet_packs_with_chunks_tag` helper, similar to javascript helper but for
|
189
|
+
loading stylesheets chunks.
|
165
190
|
|
166
191
|
```erb
|
167
192
|
<%= stylesheet_packs_with_chunks_tag 'calendar', 'map', 'data-turbolinks-track': 'reload' %>
|
@@ -182,15 +207,15 @@ helper otherwise you will get duplicated chunks on the page.
|
|
182
207
|
# <%= stylesheet_packs_with_chunks_tag 'map' %>
|
183
208
|
```
|
184
209
|
|
185
|
-
|
186
210
|
## [4.0.0.rc.3] - 2019-01-17
|
187
211
|
|
188
212
|
### Fixed
|
189
|
-
- Issue with javascript_pack_tag asset duplication [#1898](https://github.com/rails/webpacker/pull/1898)
|
190
213
|
|
214
|
+
- Issue with javascript_pack_tag asset duplication [#1898](https://github.com/rails/webpacker/pull/1898)
|
191
215
|
|
192
216
|
### Added
|
193
|
-
|
217
|
+
|
218
|
+
- `javascript_packs_with_chunks_tag` helper, which creates html tags
|
194
219
|
for a pack and all the dependent chunks, when using splitchunks.
|
195
220
|
|
196
221
|
```erb
|
@@ -218,68 +243,77 @@ helper otherwise you will get duplicated chunks on the page.
|
|
218
243
|
## [4.0.0.rc.2] - 2018-12-15
|
219
244
|
|
220
245
|
### Fixed
|
221
|
-
- Disable integrity hash generation [#1835](https://github.com/rails/webpacker/issues/1835)
|
222
246
|
|
247
|
+
- Disable integrity hash generation [#1835](https://github.com/rails/webpacker/issues/1835)
|
223
248
|
|
224
249
|
## [4.0.0.rc.1] - 2018-12-14
|
225
250
|
|
226
251
|
### Breaking changes
|
227
252
|
|
228
|
-
|
253
|
+
- Order of rules changed so you might have to change append to prepend,
|
229
254
|
depending on how you want to process packs [#1823](https://github.com/rails/webpacker/pull/1823)
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
255
|
+
|
256
|
+
```js
|
257
|
+
environment.loaders.prepend()
|
258
|
+
```
|
259
|
+
|
260
|
+
- Separate CSS extraction from build environment [#1625](https://github.com/rails/webpacker/pull/1625)
|
261
|
+
|
262
|
+
```yml
|
263
|
+
# Extract and emit a css file
|
264
|
+
extract_css: true
|
265
|
+
```
|
266
|
+
|
267
|
+
- Separate rule to compile node modules
|
239
268
|
(fixes cases where ES6 libraries were included in the app code) [#1823](https://github.com/rails/webpacker/pull/1823).
|
240
269
|
|
241
|
-
|
270
|
+
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).
|
242
271
|
|
243
|
-
|
272
|
+
[`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.
|
244
273
|
|
245
|
-
|
274
|
+
To keep previous behavior, remove `nodeModules` loader specifying `environment.loaders.delete('nodeModules');` in your `config/webpack/environment.js` file.
|
246
275
|
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
276
|
+
- File loader extensions API [#1823](https://github.com/rails/webpacker/pull/1823)
|
277
|
+
|
278
|
+
```yml
|
279
|
+
# webpacker.yml
|
280
|
+
static_assets_extensions:
|
281
|
+
- .pdf
|
282
|
+
# etc..
|
283
|
+
```
|
254
284
|
|
255
285
|
### Added
|
256
286
|
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
287
|
+
- Move `.babelrc` and `.postcssrc` to `.js` variant [#1822](https://github.com/rails/webpacker/pull/1822)
|
288
|
+
- Use postcss safe parser when optimising css assets [#1822](https://github.com/rails/webpacker/pull/1822)
|
289
|
+
- Add split chunks api (undocumented)
|
290
|
+
|
291
|
+
```js
|
292
|
+
const { environment } = require('@rails/webpacker')
|
293
|
+
// Enable with default config
|
294
|
+
environment.splitChunks()
|
295
|
+
// Configure via a callback
|
296
|
+
environment.splitChunks(config =>
|
297
|
+
Object.assign({}, config, { optimization: { splitChunks: false } })
|
298
|
+
)
|
299
|
+
```
|
300
|
+
|
301
|
+
- Allow changing static file extensions using webpacker.yml (undocumented)
|
268
302
|
|
269
303
|
## [4.0.0-pre.3] - 2018-10-01
|
270
304
|
|
271
305
|
### Added
|
272
306
|
|
273
|
-
|
307
|
+
- Move supported browsers configuration to [.browserslistrc](https://github.com/browserslist/browserslist#queries)
|
274
308
|
|
275
309
|
### Breaking changes
|
276
310
|
|
277
|
-
|
278
|
-
|
311
|
+
- postcss-next is replaced with postcss-preset-env
|
312
|
+
- babel@7
|
279
313
|
|
280
314
|
### Fixed
|
281
315
|
|
282
|
-
|
316
|
+
- Bring back test env [#1563](https://github.com/rails/webpacker/pull/1563)
|
283
317
|
|
284
318
|
Please see a list of [commits](https://github.com/rails/webpacker/compare/2dd68f0273074aadb3f869c4c30369d5e4e3fea7...master)
|
285
319
|
|
@@ -289,36 +323,82 @@ Please see a list of [commits](https://github.com/rails/webpacker/compare/2dd68f
|
|
289
323
|
|
290
324
|
- Webpack dev server version in installer
|
291
325
|
|
292
|
-
|
293
326
|
## [4.0.0-pre.1] - 2018-04-2
|
294
327
|
|
295
328
|
Pre-release to try out webpack 4.0 support
|
296
329
|
|
297
330
|
### Added
|
298
|
-
|
331
|
+
|
332
|
+
- Webpack 4.0 support [#1376](https://github.com/rails/webpacker/pull/1316)
|
299
333
|
|
300
334
|
### Fixed
|
301
|
-
- Remove compilation digest file if webpack command fails[#1398](https://github.com/rails/webpacker/issues/1398)
|
302
335
|
|
336
|
+
- Remove compilation digest file if webpack command fails[#1398](https://github.com/rails/webpacker/issues/1398)
|
337
|
+
|
338
|
+
## [3.6.0] - 2019-03-06
|
339
|
+
|
340
|
+
See changes: https://github.com/rails/webpacker/compare/88a253ed42966eb2d5c997435e9396881513bce1...3-x-stable
|
341
|
+
|
342
|
+
## [3.5.5] - 2018-07-09
|
343
|
+
|
344
|
+
See changes: https://github.com/rails/webpacker/compare/e8b197e36c77181ca2e4765c620faea59dcd0351...3-x-stable
|
345
|
+
|
346
|
+
### Added
|
347
|
+
|
348
|
+
- On CI, sort files & check modified w/ digest intead of mtime[#1522](https://github.com/rails/webpacker/pull/1522)
|
349
|
+
|
350
|
+
## [3.5.3] - 2018-05-03
|
351
|
+
|
352
|
+
### Fixed
|
353
|
+
|
354
|
+
- Relax Javascript package dependencies [#1466](https://github.com/rails/webpacker/pull/1466#issuecomment-386336605)
|
355
|
+
|
356
|
+
## [3.5.2] - 2018-04-29
|
357
|
+
|
358
|
+
- Pin Javascript package to 3.5.x
|
303
359
|
|
304
|
-
|
305
|
-
|
360
|
+
## [3.5.1] - 2018-04-29
|
361
|
+
|
362
|
+
- Upgraded gems and Javascript packages
|
363
|
+
|
364
|
+
## [3.5.0] - 2018-04-29
|
365
|
+
|
366
|
+
### Fixed
|
367
|
+
|
368
|
+
- Remove compilation digest file if webpack command fails [#1399](https://github.com/rails/webpacker/pull/1399)
|
369
|
+
- Handle http dev_server setting properly in the proxy [#1420](https://github.com/rails/webpacker/pull/1420)
|
370
|
+
- Use correct protocol [#1425](https://github.com/rails/webpacker/pull/1425)
|
371
|
+
|
372
|
+
### Added
|
373
|
+
|
374
|
+
- `image_pack_tag` helper [#1400](https://github.com/rails/webpacker/pull/1400)
|
375
|
+
- devserver proxy for custom environments [#1415](https://github.com/rails/webpacker/pull/1415)
|
376
|
+
- Rails webpacker:info task [#1416](https://github.com/rails/webpacker/pull/1416)
|
377
|
+
- Include `RAILS_RELATIVE_URL_ROOT` environment variable in publicPath [#1428](https://github.com/rails/webpacker/pull/1428)
|
378
|
+
|
379
|
+
Complete list of changes: [#1464](https://github.com/rails/webpacker/pull/1464)
|
380
|
+
|
381
|
+
## [3.4.3] - 2018-04-3
|
382
|
+
|
383
|
+
### Fixed
|
384
|
+
|
385
|
+
- Lock webpacker version in installer [#1401](https://github.com/rails/webpacker/issues/1401)
|
306
386
|
|
307
387
|
## [3.4.1] - 2018-03-24
|
308
388
|
|
309
389
|
### Fixed
|
310
|
-
- Yarn integrity check in development [#1374](https://github.com/rails/webpacker/issues/1374)
|
311
390
|
|
391
|
+
- Yarn integrity check in development [#1374](https://github.com/rails/webpacker/issues/1374)
|
312
392
|
|
313
393
|
## [3.4.0] - 2018-03-23
|
314
394
|
|
315
395
|
**Please use 3.4.1 instead**
|
316
396
|
|
317
397
|
### Added
|
318
|
-
- Support for custom Rails environments [#1359](https://github.com/rails/webpacker/pull/1359)
|
319
398
|
|
320
|
-
|
399
|
+
- Support for custom Rails environments [#1359](https://github.com/rails/webpacker/pull/1359)
|
321
400
|
|
401
|
+
_This could break the compilation if you set NODE_ENV to custom environment. Now, NODE_ENV only understands production or development mode_
|
322
402
|
|
323
403
|
## [3.3.1] - 2018-03-12
|
324
404
|
|
@@ -341,6 +421,7 @@ for further releases and changelogs:
|
|
341
421
|
```
|
342
422
|
bundle exec rails webpacker:binstubs
|
343
423
|
```
|
424
|
+
|
344
425
|
- set function is now removed from plugins and loaders, please use `append` or `prepend`
|
345
426
|
|
346
427
|
```js
|
@@ -354,6 +435,7 @@ environment.loaders.append('json', {
|
|
354
435
|
```
|
355
436
|
|
356
437
|
### Fixed
|
438
|
+
|
357
439
|
- Limit ts-loader to 3.5.0 until webpack 4 support [#1308](https://github.com/rails/webpacker/pull/1308)
|
358
440
|
- Custom env support [#1304](https://github.com/rails/webpacker/pull/1304)
|
359
441
|
|
@@ -387,7 +469,6 @@ And, bunch of bug fixes [See changes](https://github.com/rails/webpacker/compare
|
|
387
469
|
|
388
470
|
- Revert file loader [#1196](https://github.com/rails/webpacker/pull/1196)
|
389
471
|
|
390
|
-
|
391
472
|
## [3.2.0] - 2017-12-16
|
392
473
|
|
393
474
|
### To upgrade:
|
@@ -417,11 +498,11 @@ into your `config/webpack/loaders/`
|
|
417
498
|
directory and add it to webpack build from `config/webpack/environment.js`
|
418
499
|
|
419
500
|
```js
|
420
|
-
const erb =
|
421
|
-
const elm =
|
422
|
-
const typescript =
|
423
|
-
const vue =
|
424
|
-
const coffee =
|
501
|
+
const erb = require('./loaders/erb')
|
502
|
+
const elm = require('./loaders/elm')
|
503
|
+
const typescript = require('./loaders/typescript')
|
504
|
+
const vue = require('./loaders/vue')
|
505
|
+
const coffee = require('./loaders/coffee')
|
425
506
|
|
426
507
|
environment.loaders.append('coffee', coffee)
|
427
508
|
environment.loaders.append('vue', vue)
|
@@ -444,19 +525,16 @@ plugins:
|
|
444
525
|
|
445
526
|
- `postcss-import` in place of `postcss-smart-import`
|
446
527
|
|
447
|
-
|
448
528
|
### Removed (npm module)
|
449
529
|
|
450
530
|
- `postcss-smart-import`, `coffee-loader`, `url-loader`, `rails-erb-loader` as dependencies
|
451
531
|
|
452
|
-
-
|
453
|
-
|
532
|
+
- `publicPath` from file loader [#1107](https://github.com/rails/webpacker/pull/1107)
|
454
533
|
|
455
534
|
### Fixed (npm module)
|
456
535
|
|
457
536
|
- Return native array type for `ConfigList` [#1098](https://github.com/rails/webpacker/pull/1098)
|
458
537
|
|
459
|
-
|
460
538
|
### Added (Gem)
|
461
539
|
|
462
540
|
- New `asset_pack_url` helper [#1102](https://github.com/rails/webpacker/pull/1102)
|
@@ -470,17 +548,14 @@ bundle exec rails webpacker:install:coffee
|
|
470
548
|
|
471
549
|
- Resolved paths from webpacker.yml to compiler watched list
|
472
550
|
|
473
|
-
|
474
551
|
## [3.1.1] - 2017-12-11
|
475
552
|
|
476
553
|
### Fixed
|
477
554
|
|
478
555
|
- Include default webpacker.yml config inside npm package
|
479
556
|
|
480
|
-
|
481
557
|
## [3.1.0] - 2017-12-11
|
482
558
|
|
483
|
-
|
484
559
|
### Added (npm module)
|
485
560
|
|
486
561
|
- Expose base config from environment
|
@@ -490,7 +565,8 @@ environment.config.set('resolve.extensions', ['.foo', '.bar'])
|
|
490
565
|
environment.config.set('output.filename', '[name].js')
|
491
566
|
environment.config.delete('output.chunkFilename')
|
492
567
|
environment.config.get('resolve')
|
493
|
-
environment.config.merge({
|
568
|
+
environment.config.merge({
|
569
|
+
output: {
|
494
570
|
filename: '[name].js'
|
495
571
|
}
|
496
572
|
})
|
@@ -499,7 +575,7 @@ environment.config.merge({ output: {
|
|
499
575
|
- Expose new API's for loaders and plugins to insert at position
|
500
576
|
|
501
577
|
```js
|
502
|
-
const jsonLoader =
|
578
|
+
const jsonLoader = {
|
503
579
|
test: /\.json$/,
|
504
580
|
exclude: /node_modules/,
|
505
581
|
loader: 'json-loader'
|
@@ -507,8 +583,8 @@ const jsonLoader = {
|
|
507
583
|
|
508
584
|
environment.loaders.append('json', jsonLoader)
|
509
585
|
environment.loaders.prepend('json', jsonLoader)
|
510
|
-
environment.loaders.insert('json', jsonLoader, { after: 'style' }
|
511
|
-
environment.loaders.insert('json', jsonLoader, { before: 'babel' }
|
586
|
+
environment.loaders.insert('json', jsonLoader, { after: 'style' })
|
587
|
+
environment.loaders.insert('json', jsonLoader, { before: 'babel' })
|
512
588
|
|
513
589
|
// Update a plugin
|
514
590
|
const manifestPlugin = environment.plugins.get('Manifest')
|
@@ -516,10 +592,14 @@ manifestPlugin.opts.writeToFileEmit = false
|
|
516
592
|
|
517
593
|
// Update coffee loader to use coffeescript 2
|
518
594
|
const babelLoader = environment.loaders.get('babel')
|
519
|
-
environment.loaders.insert(
|
520
|
-
|
521
|
-
|
522
|
-
|
595
|
+
environment.loaders.insert(
|
596
|
+
'coffee',
|
597
|
+
{
|
598
|
+
test: /\.coffee(\.erb)?$/,
|
599
|
+
use: babelLoader.use.concat(['coffee-loader'])
|
600
|
+
},
|
601
|
+
{ before: 'json' }
|
602
|
+
)
|
523
603
|
```
|
524
604
|
|
525
605
|
- Expose `resolve.modules` paths like loaders and plugins
|
@@ -531,8 +611,8 @@ environment.resolvedModules.append('vendor', 'vendor')
|
|
531
611
|
- Enable sourcemaps in `style` and `css` loader
|
532
612
|
|
533
613
|
- Separate `css` and `sass` loader for easier configuration. `style` loader is now
|
534
|
-
`css` loader, which resolves `.css` files and `sass` loader resolves `.scss` and `.sass`
|
535
|
-
files.
|
614
|
+
`css` loader, which resolves `.css` files and `sass` loader resolves `.scss` and `.sass`
|
615
|
+
files.
|
536
616
|
|
537
617
|
```js
|
538
618
|
// Enable css modules with sass loader
|
@@ -568,7 +648,6 @@ dev_server:
|
|
568
648
|
|
569
649
|
- Add url loader to process and embed smaller static files
|
570
650
|
|
571
|
-
|
572
651
|
### Removed
|
573
652
|
|
574
653
|
- resolve url loader [#1042](https://github.com/rails/webpacker/issues/1042)
|
@@ -585,8 +664,7 @@ WEBPACKER_PRECOMPILE=false bundle exec rails assets:precompile
|
|
585
664
|
- Use `WEBPACKER_ASSET_HOST` instead of `ASSET_HOST` for CDN
|
586
665
|
|
587
666
|
- Alias `webpacker:compile` task to `assets:precompile` if is not defined so it works
|
588
|
-
without sprockets
|
589
|
-
|
667
|
+
without sprockets
|
590
668
|
|
591
669
|
## [3.0.2] - 2017-10-04
|
592
670
|
|
@@ -621,7 +699,7 @@ Webpacker.manifest.lookup!('foo.js')
|
|
621
699
|
- Inline CLI args for dev server binstub, use env variables instead
|
622
700
|
|
623
701
|
- Coffeescript as core dependency. You have to manually add coffeescript now, if you are using
|
624
|
-
it in your app.
|
702
|
+
it in your app.
|
625
703
|
|
626
704
|
```bash
|
627
705
|
yarn add coffeescript@1.12.7
|
@@ -653,8 +731,7 @@ yarn add coffeescript
|
|
653
731
|
### Removed
|
654
732
|
|
655
733
|
- `watchContentBase` from devServer config so it doesn't unncessarily trigger
|
656
|
-
live reload when manifest changes. If you have applied this workaround from [#724](https://github.com/rails/webpacker/issues/724), please revert the change from `config/webpack/development.js` since this is now fixed.
|
657
|
-
|
734
|
+
live reload when manifest changes. If you have applied this workaround from [#724](https://github.com/rails/webpacker/issues/724), please revert the change from `config/webpack/development.js` since this is now fixed.
|
658
735
|
|
659
736
|
## [3.0.0] - 2017-08-30
|
660
737
|
|
@@ -663,9 +740,9 @@ live reload when manifest changes. If you have applied this workaround from [#72
|
|
663
740
|
- `resolved_paths` option to allow adding additional paths webpack should lookup when resolving modules
|
664
741
|
|
665
742
|
```yml
|
666
|
-
|
667
|
-
|
668
|
-
|
743
|
+
# config/webpacker.yml
|
744
|
+
# Additional paths webpack should lookup modules
|
745
|
+
resolved_paths: [] # empty by default
|
669
746
|
```
|
670
747
|
|
671
748
|
- `Webpacker::Compiler.fresh?` and `Webpacker::Compiler.stale?` answer the question of whether compilation is needed.
|
@@ -718,8 +795,8 @@ live reload when manifest changes. If you have applied this workaround from [#72
|
|
718
795
|
- Serve assets using `localhost` from dev server - [#424](https://github.com/rails/webpacker/issues/424)
|
719
796
|
|
720
797
|
```yml
|
721
|
-
|
722
|
-
|
798
|
+
dev_server:
|
799
|
+
host: localhost
|
723
800
|
```
|
724
801
|
|
725
802
|
- On Windows, `ruby bin/webpacker` and `ruby bin/webpacker-dev-server` will now bypass yarn, and execute via `node_modules/.bin` directly - [#584](https://github.com/rails/webpacker/pull/584)
|
@@ -729,21 +806,21 @@ live reload when manifest changes. If you have applied this workaround from [#72
|
|
729
806
|
- Add `compile` and `cache_path` options to `config/webpacker.yml` for configuring lazy compilation of packs when a file under tracked paths is changed [#503](https://github.com/rails/webpacker/pull/503). To enable expected behavior, update `config/webpacker.yml`:
|
730
807
|
|
731
808
|
```yaml
|
732
|
-
|
733
|
-
|
734
|
-
|
735
|
-
|
809
|
+
default: &default
|
810
|
+
cache_path: tmp/cache/webpacker
|
811
|
+
test:
|
812
|
+
compile: true
|
736
813
|
|
737
|
-
|
738
|
-
|
814
|
+
development:
|
815
|
+
compile: true
|
739
816
|
|
740
|
-
|
741
|
-
|
817
|
+
production:
|
818
|
+
compile: false
|
742
819
|
```
|
743
820
|
|
744
821
|
- Make test compilation cacheable and configurable so that the lazy compilation
|
745
|
-
only triggers if files are changed under tracked paths.
|
746
|
-
Following paths are watched by default -
|
822
|
+
only triggers if files are changed under tracked paths.
|
823
|
+
Following paths are watched by default -
|
747
824
|
|
748
825
|
```rb
|
749
826
|
["app/javascript/**/*", "yarn.lock", "package.json", "config/webpack/**/*"]
|
@@ -759,6 +836,7 @@ Following paths are watched by default -
|
|
759
836
|
## [2.0] - 2017-05-24
|
760
837
|
|
761
838
|
### Fixed
|
839
|
+
|
762
840
|
- Update `.babelrc` to fix compilation issues - [#306](https://github.com/rails/webpacker/issues/306)
|
763
841
|
|
764
842
|
- Duplicated asset hosts - [#320](https://github.com/rails/webpacker/issues/320), [#397](https://github.com/rails/webpacker/pull/397)
|
@@ -771,24 +849,28 @@ Following paths are watched by default -
|
|
771
849
|
|
772
850
|
- ARGV support for `webpack-dev-server` - [#286](https://github.com/rails/webpacker/issues/286)
|
773
851
|
|
774
|
-
|
775
852
|
### Added
|
853
|
+
|
776
854
|
- [Elm](http://elm-lang.org) support. You can now add Elm support via the following methods:
|
855
|
+
|
777
856
|
- New app: `rails new <app> --webpack=elm`
|
778
857
|
- Within an existing app: `rails webpacker:install:elm`
|
779
858
|
|
780
859
|
- Support for custom `public_output_path` paths independent of `source_entry_path` in `config/webpacker.yml`. `output` is also now relative to `public/`. - [#397](https://github.com/rails/webpacker/pull/397)
|
781
860
|
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
791
|
-
|
861
|
+
Before (compile to `public/packs`):
|
862
|
+
|
863
|
+
```yaml
|
864
|
+
source_entry_path: packs
|
865
|
+
public_output_path: packs
|
866
|
+
```
|
867
|
+
|
868
|
+
After (compile to `public/sweet/js`):
|
869
|
+
|
870
|
+
```yaml
|
871
|
+
source_entry_path: packs
|
872
|
+
public_output_path: sweet/js
|
873
|
+
```
|
792
874
|
|
793
875
|
- `https` option to use `https` mode, particularly on platforms like - https://community.c9.io/t/running-a-rails-app/1615 or locally - [#176](https://github.com/rails/webpacker/issues/176)
|
794
876
|
|
@@ -797,26 +879,29 @@ Following paths are watched by default -
|
|
797
879
|
```json
|
798
880
|
{
|
799
881
|
"presets": [
|
800
|
-
[
|
801
|
-
"
|
802
|
-
|
803
|
-
"
|
804
|
-
"
|
805
|
-
|
806
|
-
|
807
|
-
|
882
|
+
[
|
883
|
+
"env",
|
884
|
+
{
|
885
|
+
"modules": false,
|
886
|
+
"targets": {
|
887
|
+
"browsers": "> 1%",
|
888
|
+
"uglify": true
|
889
|
+
},
|
890
|
+
"useBuiltIns": true
|
891
|
+
}
|
892
|
+
]
|
808
893
|
],
|
809
894
|
|
810
895
|
"plugins": [
|
811
896
|
"syntax-dynamic-import",
|
812
|
-
"transform-class-properties",
|
897
|
+
"transform-class-properties",
|
898
|
+
{ "spec": true }
|
813
899
|
]
|
814
900
|
}
|
815
901
|
```
|
816
902
|
|
817
903
|
- Source-map support for production bundle
|
818
904
|
|
819
|
-
|
820
905
|
#### Breaking Change
|
821
906
|
|
822
907
|
- Consolidate and flatten `paths.yml` and `development.server.yml` config into one file - `config/webpacker.yml` - [#403](https://github.com/rails/webpacker/pull/403). This is a breaking change and requires you to re-install webpacker and cleanup old configuration files.
|
@@ -831,14 +916,16 @@ Following paths are watched by default -
|
|
831
916
|
rm config/webpack/development.server.js
|
832
917
|
```
|
833
918
|
|
834
|
-
|
919
|
+
**Warning**: For now you also have to add a pattern in `.gitignore` by hand.
|
920
|
+
|
835
921
|
```diff
|
836
922
|
/public/packs
|
837
923
|
+/public/packs-test
|
838
924
|
/node_modules
|
839
|
-
|
925
|
+
```
|
840
926
|
|
841
927
|
## [1.2] - 2017-04-27
|
928
|
+
|
842
929
|
Some of the changes made requires you to run below commands to install new changes.
|
843
930
|
|
844
931
|
```
|
@@ -846,13 +933,14 @@ bundle update webpacker
|
|
846
933
|
bundle exec rails webpacker:install
|
847
934
|
```
|
848
935
|
|
849
|
-
|
850
936
|
### Fixed
|
937
|
+
|
851
938
|
- Support Spring - [#205](https://github.com/rails/webpacker/issues/205)
|
852
939
|
|
853
940
|
```ruby
|
854
941
|
Spring.after_fork { Webpacker.bootstrap } if defined?(Spring)
|
855
942
|
```
|
943
|
+
|
856
944
|
- Check node version and yarn before installing webpacker - [#217](https://github.com/rails/webpacker/issues/217)
|
857
945
|
|
858
946
|
- Include webpacker helper to views - [#172](https://github.com/rails/webpacker/issues/172)
|
@@ -865,27 +953,28 @@ bundle exec rails webpacker:install
|
|
865
953
|
|
866
954
|
- Move babel presets and plugins to .babelrc - [#202](https://github.com/rails/webpacker/issues/202)
|
867
955
|
|
868
|
-
|
869
956
|
### Added
|
957
|
+
|
870
958
|
- A changelog - [#211](https://github.com/rails/webpacker/issues/211)
|
871
959
|
- Minimize CSS assets - [#218](https://github.com/rails/webpacker/issues/218)
|
872
960
|
- Pack namespacing support - [#201](https://github.com/rails/webpacker/pull/201)
|
873
961
|
|
874
962
|
For example:
|
963
|
+
|
875
964
|
```
|
876
965
|
app/javascript/packs/admin/hello_vue.js
|
877
966
|
app/javascript/packs/admin/hello.vue
|
878
967
|
app/javascript/packs/hello_vue.js
|
879
968
|
app/javascript/packs/hello.vue
|
880
969
|
```
|
970
|
+
|
881
971
|
- Add tree-shaking support - [#250](https://github.com/rails/webpacker/pull/250)
|
882
972
|
- Add initial test case by @kimquy [#259](https://github.com/rails/webpacker/pull/259)
|
883
973
|
- Compile assets before test:controllers and test:system
|
884
974
|
|
885
|
-
|
886
975
|
### Removed
|
887
|
-
- Webpack watcher - [#295](https://github.com/rails/webpacker/pull/295)
|
888
976
|
|
977
|
+
- Webpack watcher - [#295](https://github.com/rails/webpacker/pull/295)
|
889
978
|
|
890
979
|
## [1.1] - 2017-03-24
|
891
980
|
|
@@ -900,10 +989,10 @@ bundle exec rails webpacker:install:[react, angular, vue]
|
|
900
989
|
```
|
901
990
|
|
902
991
|
### Added (breaking changes)
|
992
|
+
|
903
993
|
- Static assets support - [#153](https://github.com/rails/webpacker/pull/153)
|
904
994
|
- Advanced webpack configuration - [#153](https://github.com/rails/webpacker/pull/153)
|
905
995
|
|
906
|
-
|
907
996
|
### Removed
|
908
997
|
|
909
998
|
```rb
|