webpacker 4.3.0 → 5.0.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6d92899958cdfa5fa810905a4d9dcb06573e691d7ef871492518265aadd78463
4
- data.tar.gz: '09cd698dd32daab4502e16e16e6c01577cf5af704e687ff3cb631aee7855596c'
3
+ metadata.gz: 90b70d4a35ee4060d806e7c9cb1a9d84911ea44d694624702c114f127b056898
4
+ data.tar.gz: 9154bed025c8ba24e1a86a9beecf02565801e476d5e3d0c3da5e852dba12c5d5
5
5
  SHA512:
6
- metadata.gz: df99f4799cb78e62a18299f8bfd429ced64ee9b0eb7a46f3ca21014e2a634649013659c3681e0b7f79071cccdeb91e57430bfb93af4f379ba14215debf807d47
7
- data.tar.gz: 5d23ef89dded82e78f0c5a5c84a103118fb6fba7feefbcdb4770f861e22c3fcdcb33ea0125178b0ba80d97d72a1e48c61bae77eaf8c442ace6c5992c6bf69d6d
6
+ metadata.gz: f4f268225c02c17af8084b90ee0c77063956abbb151c35ad0dcb3796120316cd743ea8255112b5e45631ecbd007ca730b9730673dfb38776b138936203678d42
7
+ data.tar.gz: 0a7eed57357510f8beac760b74b1e83e19d1e3bca477be1fbb0fa26cc7844f71936062cbd18126b7e48853768fbfc20e6bd31f0585cf55139ac402d39850a134
@@ -1 +1 @@
1
- 8.16.0
1
+ 10.13.0
@@ -1,23 +1,15 @@
1
1
  language: ruby
2
2
  dist: xenial
3
3
  before_install:
4
- # Rails 4.2 doesn't support bundler 2.0, so we need to lock bundler to
5
- # v1.17.3. This is just for Ruby 2.5 which ships with bundler 2.x on Travis
6
- # CI while Ruby 2.6 does not.
7
- # https://github.com/travis-ci/travis-rubies/issues/57#issuecomment-458981237
8
- - rvm gemset create travis
9
- - rvm gemset use travis
10
- - gem install bundler -v 1.17.3
4
+ - gem install rubygems-update && update_rubygems
5
+ - yes | rvm @global do gem install bundler -v 2.1.4 || true
11
6
  rvm:
12
- - 2.3.8
13
- - 2.4.6
7
+ - 2.4.9
14
8
  - 2.5.5
15
- - 2.6.3
9
+ - 2.6.5
10
+ - 2.7.0
16
11
  - ruby-head
17
12
  gemfile:
18
- - gemfiles/Gemfile-rails.4.2.x
19
- - gemfiles/Gemfile-rails.5.0.x
20
- - gemfiles/Gemfile-rails.5.1.x
21
13
  - gemfiles/Gemfile-rails.5.2.x
22
14
  - gemfiles/Gemfile-rails.6.0.x
23
15
  - gemfiles/Gemfile-rails-edge
@@ -29,7 +21,7 @@ cache:
29
21
 
30
22
  install:
31
23
  - bundle install --jobs 3 --retry 3
32
- - nvm install 10
24
+ - nvm install 12
33
25
  - node -v
34
26
  - npm i -g yarn
35
27
  - yarn
@@ -43,15 +35,9 @@ matrix:
43
35
  - gemfile: gemfiles/Gemfile-rails-edge
44
36
  - rvm: ruby-head
45
37
  exclude:
46
- - rvm: 2.3.8
47
- gemfile: gemfiles/Gemfile-rails-edge
48
- - rvm: 2.4.6
38
+ - rvm: 2.4.9
49
39
  gemfile: gemfiles/Gemfile-rails-edge
50
40
  - rvm: 2.5.5
51
41
  gemfile: gemfiles/Gemfile-rails-edge
52
- - rvm: ruby-head
53
- gemfile: gemfiles/Gemfile-rails.4.2.x
54
- - rvm: 2.3.8
55
- gemfile: gemfiles/Gemfile-rails.6.0.x
56
- - rvm: 2.4.6
42
+ - rvm: 2.4.9
57
43
  gemfile: gemfiles/Gemfile-rails.6.0.x
@@ -2,9 +2,22 @@
2
2
 
3
3
  **Please note that Webpacker 4.1.0 has an installer bug. Please use 4.2.0 or above**
4
4
 
5
- ## [[4.3.0]](https://github.com/rails/webpacker/compare/v4.2.2...v4.3.0) - 2019-08-16
5
+ ## [[5.0.0]](https://github.com/rails/webpacker/compare/v4.2.2...v5.0.0) - 2020-03-22
6
6
 
7
- - Bump dependencies
7
+ - Bump minimum node version [#2428](https://github.com/rails/webpacker/pull/2428)
8
+ - Bump minimum ruby/rails version [#2415](https://github.com/rails/webpacker/pull/2415)
9
+ - Add support for multiple files per entry [#2476](https://github.com/rails/webpacker/pull/2476)
10
+
11
+ ```js
12
+ entry: {
13
+ home: ['./home.js', './home.scss'],
14
+ account: ['./account.js', './account.scss']
15
+ }
16
+ ```
17
+
18
+ You can now have two entry files with same names inside packs folder, `home.scss` and `home.js`
19
+
20
+ And, other minor fixes, please see a list of changes [here](https://github.com/rails/webpacker/compare/v4.2.2...v5.0.0)
8
21
 
9
22
  ## [[4.2.2]](https://github.com/rails/webpacker/compare/v4.2.1...v4.2.2) - 2019-12-09
10
23
 
@@ -297,7 +310,7 @@ const { environment } = require('@rails/webpacker')
297
310
  // Enable with default config
298
311
  environment.splitChunks()
299
312
  // Configure via a callback
300
- environment.splitChunks((config) =>
313
+ environment.splitChunks(config =>
301
314
  Object.assign({}, config, { optimization: { splitChunks: false } })
302
315
  )
303
316
  ```
@@ -621,9 +634,7 @@ environment.resolvedModules.append('vendor', 'vendor')
621
634
  ```js
622
635
  // Enable css modules with sass loader
623
636
  const sassLoader = environment.loaders.get('sass')
624
- const cssLoader = sassLoader.use.find(
625
- (loader) => loader.loader === 'css-loader'
626
- )
637
+ const cssLoader = sassLoader.use.find(loader => loader.loader === 'css-loader')
627
638
 
628
639
  cssLoader.options = Object.assign({}, cssLoader.options, {
629
640
  modules: true,
data/Gemfile CHANGED
@@ -5,6 +5,7 @@ gemspec
5
5
  gem "rails"
6
6
  gem "rake", ">= 11.1"
7
7
  gem "rack-proxy", require: false
8
+ gem "semantic_range", require: false
8
9
 
9
10
  group :test do
10
11
  gem "minitest", "~> 5.0"
@@ -1,10 +1,11 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- webpacker (4.3.0)
5
- activesupport (>= 4.2)
4
+ webpacker (5.0.0)
5
+ activesupport (>= 5.2)
6
6
  rack-proxy (>= 0.6.1)
7
- railties (>= 4.2)
7
+ railties (>= 5.2)
8
+ semantic_range (>= 2.3.0)
8
9
 
9
10
  GEM
10
11
  remote: https://rubygems.org/
@@ -88,12 +89,12 @@ GEM
88
89
  mini_portile2 (2.4.0)
89
90
  minitest (5.13.0)
90
91
  nio4r (2.5.2)
91
- nokogiri (1.10.5)
92
+ nokogiri (1.10.8)
92
93
  mini_portile2 (~> 2.4.0)
93
94
  parallel (1.18.0)
94
95
  parser (2.6.5.0)
95
96
  ast (~> 2.4.0)
96
- rack (2.0.7)
97
+ rack (2.0.8)
97
98
  rack-proxy (0.6.5)
98
99
  rack
99
100
  rack-test (1.1.0)
@@ -136,6 +137,7 @@ GEM
136
137
  rubocop-performance (1.3.0)
137
138
  rubocop (>= 0.68.0)
138
139
  ruby-progressbar (1.10.1)
140
+ semantic_range (2.3.0)
139
141
  sprockets (4.0.0)
140
142
  concurrent-ruby (~> 1.0)
141
143
  rack (> 1, < 3)
@@ -165,6 +167,7 @@ DEPENDENCIES
165
167
  rake (>= 11.1)
166
168
  rubocop (< 0.69)
167
169
  rubocop-performance
170
+ semantic_range
168
171
  webpacker!
169
172
 
170
173
  BUNDLED WITH
data/README.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Webpacker
2
2
 
3
3
  [![Build Status](https://travis-ci.org/rails/webpacker.svg?branch=master)](https://travis-ci.org/rails/webpacker)
4
- [![node.js](https://img.shields.io/badge/node-%3E%3D%208.16.0-brightgreen.svg)](https://nodejs.org/en/)
5
- [![Gem](https://img.shields.io/gem/v/webpacker.svg)](https://github.com/rails/webpacker)
4
+ [![node.js](https://img.shields.io/badge/node-%3E%3D%2010.13.0-brightgreen.svg)](https://www.npmjs.com/package/@rails/webpacker)
5
+ [![Gem](https://img.shields.io/gem/v/webpacker.svg)](https://rubygems.org/gems/webpacker)
6
6
 
7
7
  Webpacker makes it easy to use the JavaScript pre-processor and bundler
8
8
  [webpack 4.x.x+](https://webpack.js.org/)
@@ -29,14 +29,14 @@ in which case you may not even need the asset pipeline. This is mostly relevant
29
29
  - [Upgrading](#upgrading)
30
30
  - [Yarn Integrity](#yarn-integrity)
31
31
  - [Integrations](#integrations)
32
- - [React](#react)
33
- - [Angular with TypeScript](#angular-with-typescript)
34
- - [Vue](#vue)
35
- - [Elm](#elm)
36
- - [Stimulus](#stimulus)
37
- - [Svelte](#svelte)
38
- - [CoffeeScript](#coffeescript)
39
- - [Erb](#erb)
32
+ - [React](./docs/integrations.md#react)
33
+ - [Angular with TypeScript](./docs/integrations.md#angular-with-typescript)
34
+ - [Vue](./docs/integrations.md#vue)
35
+ - [Elm](./docs/integrations.md#elm)
36
+ - [Stimulus](./docs/integrations.md#stimulus)
37
+ - [Svelte](./docs/integrations.md#svelte)
38
+ - [CoffeeScript](./docs/integrations.md#coffeescript)
39
+ - [Erb](./docs/integrations.md#erb)
40
40
  - [Paths](#paths)
41
41
  - [Resolved](#resolved)
42
42
  - [Watched](#watched)
@@ -50,9 +50,9 @@ in which case you may not even need the asset pipeline. This is mostly relevant
50
50
 
51
51
  ## Prerequisites
52
52
 
53
- * Ruby 2.2+
54
- * Rails 4.2+
55
- * Node.js 8.16.0+
53
+ * Ruby 2.4+
54
+ * Rails 5.2+
55
+ * Node.js 10.13.0+
56
56
  * Yarn 1.x+
57
57
 
58
58
 
@@ -327,225 +327,21 @@ You may also turn on this feature by adding the config option for any Rails envi
327
327
 
328
328
  ## Integrations
329
329
 
330
- Webpacker ships with basic out-of-the-box integration for React, Angular, Vue and Elm.
331
- You can see a list of available commands/tasks by running `bundle exec rails webpacker`:
330
+ Webpacker ships with basic out-of-the-box integration. You can see a list of available commands/tasks by running `bundle exec rails webpacker`.
332
331
 
333
- ### React
332
+ Included install integrations:
334
333
 
335
- To use Webpacker with [React](https://facebook.github.io/react/), create a
336
- new Rails 5.1+ app using `--webpack=react` option:
337
-
338
- ```bash
339
- # Rails 5.1+
340
- rails new myapp --webpack=react
341
- ```
342
-
343
- (or run `bundle exec rails webpacker:install:react` in an existing Rails app already
344
- setup with Webpacker).
345
-
346
- The installer will add all relevant dependencies using Yarn, changes
347
- to the configuration files, and an example React component to your
348
- project in `app/javascript/packs` so that you can experiment with React right away.
349
-
350
-
351
- ### Angular with TypeScript
352
-
353
- To use Webpacker with [Angular](https://angular.io/), create a
354
- new Rails 5.1+ app using `--webpack=angular` option:
355
-
356
- ```bash
357
- # Rails 5.1+
358
- rails new myapp --webpack=angular
359
- ```
360
-
361
- (or run `bundle exec rails webpacker:install:angular` on a Rails app already
362
- setup with Webpacker).
363
-
364
- The installer will add the TypeScript and Angular core libraries using Yarn alongside
365
- a few changes to the configuration files. An example component written in
366
- TypeScript will also be added to your project in `app/javascript` so that
367
- you can experiment with Angular right away.
368
-
369
- By default, Angular uses a JIT compiler for development environment. This
370
- compiler is not compatible with restrictive CSP (Content Security
371
- Policy) environments like Rails 5.2+. You can use Angular AOT compiler
372
- in development with the [@ngtools/webpack](https://www.npmjs.com/package/@ngtools/webpack#usage) plugin.
373
-
374
- Alternatively if you're using Rails 5.2+ you can enable `unsafe-eval` rule for your
375
- development environment. This can be done in the `config/initializers/content_security_policy.rb`
376
- with the following code:
377
-
378
- ```ruby
379
- Rails.application.config.content_security_policy do |policy|
380
- if Rails.env.development?
381
- policy.script_src :self, :https, :unsafe_eval
382
- else
383
- policy.script_src :self, :https
384
- end
385
- end
386
- ```
387
-
388
-
389
- ### Vue
390
-
391
- To use Webpacker with [Vue](https://vuejs.org/), create a
392
- new Rails 5.1+ app using `--webpack=vue` option:
393
-
394
- ```bash
395
- # Rails 5.1+
396
- rails new myapp --webpack=vue
397
- ```
398
- (or run `bundle exec rails webpacker:install:vue` on a Rails app already setup with Webpacker).
399
-
400
- The installer will add Vue and its required libraries using Yarn alongside
401
- automatically applying changes needed to the configuration files. An example component will
402
- be added to your project in `app/javascript` so that you can experiment with Vue right away.
403
-
404
- If you're using Rails 5.2+ you'll need to enable `unsafe-eval` rule for your development environment.
405
- This can be done in the `config/initializers/content_security_policy.rb` with the following
406
- configuration:
407
-
408
- ```ruby
409
- Rails.application.config.content_security_policy do |policy|
410
- if Rails.env.development?
411
- policy.script_src :self, :https, :unsafe_eval
412
- else
413
- policy.script_src :self, :https
414
- end
415
- end
416
- ```
417
- You can read more about this in the [Vue docs](https://vuejs.org/v2/guide/installation.html#CSP-environments).
418
-
419
- #### Lazy loading integration
420
-
421
- See [docs/es6](docs/es6.md) to know more about Webpack and Webpacker configuration.
422
-
423
- For instance, you can lazy load Vue JS components:
424
-
425
- Before:
426
- ```js
427
- import Vue from 'vue'
428
- import { VCard } from 'vuetify/lib'
429
-
430
- Vue.component('VCard', VCard)
431
- ```
432
-
433
- After:
434
- ```js
435
- import Vue from 'vue'
436
-
437
- // With destructuring assignment
438
- Vue.component('VCard', import('vuetify/lib').then(({ VCard }) => VCard)
439
-
440
- // Or without destructuring assignment
441
- Vue.component('OtherComponent', () => import('./OtherComponent'))
442
- ```
443
-
444
- You can use it in a Single File Component as well:
445
-
446
- ```html
447
- <template>
448
- ...
449
- </template>
450
-
451
- <script>
452
- export default {
453
- components: {
454
- OtherComponent: () => import('./OtherComponent')
455
- }
456
- }
457
- </script>
458
- ```
459
-
460
- By wrapping the import function into an arrow function, Vue will execute it only when it gets requested, loading the module in that moment.
461
-
462
- ##### Automatic registration
463
-
464
- ```js
465
- /**
466
- * The following block of code may be used to automatically register your
467
- * Vue components. It will recursively scan this directory for the Vue
468
- * components and automatically register them with their "basename".
469
- *
470
- * Eg. ./components/OtherComponent.vue -> <other-component></other-component>
471
- * Eg. ./UI/ButtonComponent.vue -> <button-component></button-component>
472
- */
473
-
474
- const files = require.context('./', true, /\.vue$/i)
475
- files.keys().map(key => {
476
- const component = key.split('/').pop().split('.')[0]
477
-
478
- // With Lazy Loading
479
- Vue.component(component, () => import(`${key}`))
480
-
481
- // Or without Lazy Loading
482
- Vue.component(component, files(key).default)
483
- })
484
- ```
485
-
486
- ### Elm
487
-
488
- To use Webpacker with [Elm](http://elm-lang.org), create a
489
- new Rails 5.1+ app using `--webpack=elm` option:
490
-
491
- ```
492
- # Rails 5.1+
493
- rails new myapp --webpack=elm
494
- ```
495
-
496
- (or run `bundle exec rails webpacker:install:elm` on a Rails app already setup with Webpacker).
497
-
498
- The Elm library and its core packages will be added via Yarn and Elm.
499
- An example `Main.elm` app will also be added to your project in `app/javascript`
500
- so that you can experiment with Elm right away.
501
-
502
- ### Svelte
503
-
504
- To use Webpacker with [Svelte](https://svelte.dev), create a
505
- new Rails 5.1+ app using `--webpack=svelte` option:
506
-
507
- ```
508
- # Rails 5.1+
509
- rails new myapp --webpack=svelte
510
- ```
511
-
512
- (or run `bundle exec rails webpacker:install:svelte` on a Rails app already setup with Webpacker).
513
-
514
- Please play with the [Svelte Tutorial](https://svelte.dev/tutorial/basics) or learn more about its API at https://svelte.dev/docs
515
-
516
- ### Stimulus
517
-
518
- To use Webpacker with [Stimulus](http://stimulusjs.org), create a
519
- new Rails 5.1+ app using `--webpack=stimulus` option:
520
-
521
- ```
522
- # Rails 5.1+
523
- rails new myapp --webpack=stimulus
524
- ```
525
-
526
- (or run `bundle exec rails webpacker:install:stimulus` on a Rails app already setup with Webpacker).
527
-
528
- Please read [The Stimulus Handbook](https://stimulusjs.org/handbook/introduction) or learn more about its source code at https://github.com/stimulusjs/stimulus
529
-
530
- ### CoffeeScript
531
-
532
- To add [CoffeeScript](http://coffeescript.org/) support,
533
- run `bundle exec rails webpacker:install:coffee` on a Rails app already
534
- setup with Webpacker.
535
-
536
- An example `hello_coffee.coffee` file will also be added to your project
537
- in `app/javascript/packs` so that you can experiment with CoffeeScript right away.
538
-
539
- ### Erb
540
-
541
- To add [Erb](https://apidock.com/ruby/ERB) support in your JS templates,
542
- run `bundle exec rails webpacker:install:erb` on a Rails app already
543
- setup with Webpacker.
544
-
545
- An example `hello_erb.js.erb` file will also be added to your project
546
- in `app/javascript/packs` so that you can experiment with Erb-flavoured
547
- javascript right away.
334
+ * [React](./docs/integrations.md#React)
335
+ * [Angular with TypeScript](./docs/integrations.md#Angular-with-TypeScript)
336
+ * [Vue](./docs/integrations.md#Vue)
337
+ * [Elm](./docs/integrations.md#Elm)
338
+ * [Svelte](./docs/integrations.md#Svelte)
339
+ * [Stimulus](./docs/integrations.md#Stimulus)
340
+ * [CoffeeScript](./docs/integrations.md#CoffeeScript)
341
+ * [Typescript](./docs/integrations.md)
342
+ * [Erb](./docs/integrations.md#Erb)
548
343
 
344
+ See [Integrations](./docs/integrations.md) for further details.
549
345
 
550
346
  ## Paths
551
347