webpacker 4.3.0 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
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