webpacker 6.0.0.rc.2 → 6.0.0.rc.6

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: 96eeffae92e201748b583ac421869d0e76ec806df6dc750d2f0459b2aad05f62
4
- data.tar.gz: 3ed4f39584aa504dd761c59d160014eacc2e8392f847f3c95d5380c32d449142
3
+ metadata.gz: bb700e8975b2ec865da84e152fea23586c8e7a2a428465230255ab97ebe482ce
4
+ data.tar.gz: c2a023d554364442cd356771cad8b42226a3d6ce3a4708b6a5603151aad886ba
5
5
  SHA512:
6
- metadata.gz: d70ec25c9ee0ca7cbbe42f1806a7e3e142f0b7b55a0a9cdcd43d1922cf23bd69346bbdab6e37cd31a1cbb4fc533b951b60ef3fed3d622f36208a3841eccc4ff7
7
- data.tar.gz: 47b10bc8e36c8e0697a2341714f27ffc2d749d465b840d14cea71847f592b30f5e6512325198fcedbb2c406859acbc15384c32a71c3cbc62a0ecd2c26b4f9e62
6
+ metadata.gz: bb863173d2577d304c03a4e6d66eddc385a62950bf30af00ed29c4abb9039b0290402771f58c9ede11cf9f26d5945136997d78148590871b7247e13b4d3db7cf
7
+ data.tar.gz: a624efeabf2bdbd7b83b59aa2854e4ebda00c5c476849c03fc585d967810b30fd5d118fbf13f412c40cb6e7fa1fe020f619cc9ede0cd72989c25504f3f8e0e53
@@ -8,31 +8,20 @@ jobs:
8
8
  strategy:
9
9
  matrix:
10
10
  os: [ubuntu-latest]
11
- node: [12.x, 14.x, 15.x]
11
+ node: [12.x, 14.x, 16.x]
12
12
 
13
13
  runs-on: ${{ matrix.os }}
14
14
 
15
15
  steps:
16
- - name: Install yarn maybe
17
- run: which yarn || sudo npm install -g yarn
18
-
19
16
  - uses: actions/checkout@v2
20
- - name: Get yarn cache directory path
21
- id: yarn-cache-dir-path
22
- run: echo "::set-output name=dir::$(yarn cache dir)"
23
-
24
- - uses: actions/cache@v2
25
- id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
26
- with:
27
- path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
28
- key: ${{ runner.os }}-${{ matrix.node }}-yarn-${{ hashFiles('**/yarn.lock') }}
29
- restore-keys: |
30
- ${{ runner.os }}-${{ matrix.node }}-yarn-
31
-
32
17
  - name: Use Node.js ${{ matrix.node }}
33
- uses: actions/setup-node@v1
18
+ uses: actions/setup-node@v2
34
19
  with:
35
20
  node-version: ${{ matrix.node }}
21
+ cache: yarn
22
+
23
+ - name: Install yarn maybe
24
+ run: which yarn || npm install -g yarn
36
25
 
37
26
  - name: Install dependencies
38
27
  run: yarn --frozen-lockfile
@@ -9,31 +9,20 @@ jobs:
9
9
  strategy:
10
10
  matrix:
11
11
  os: [ubuntu-latest]
12
- node: [14.x]
12
+ node: [14]
13
13
 
14
14
  runs-on: ${{ matrix.os }}
15
15
 
16
16
  steps:
17
- - name: Install yarn maybe
18
- run: which yarn || sudo npm install -g yarn
19
-
20
17
  - uses: actions/checkout@v2
21
- - name: Get yarn cache directory path
22
- id: yarn-cache-dir-path
23
- run: echo "::set-output name=dir::$(yarn cache dir)"
24
-
25
- - uses: actions/cache@v2
26
- id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
27
- with:
28
- path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
29
- key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
30
- restore-keys: |
31
- ${{ runner.os }}-yarn-
32
-
33
18
  - name: Use Node.js ${{ matrix.node }}
34
- uses: actions/setup-node@v1
19
+ uses: actions/setup-node@v2
35
20
  with:
36
21
  node-version: ${{ matrix.node }}
22
+ cache: yarn
23
+
24
+ - name: Install yarn maybe
25
+ run: which yarn || npm install -g yarn
37
26
 
38
27
  - name: Install dependencies
39
28
  run: yarn --frozen-lockfile
@@ -7,33 +7,21 @@ jobs:
7
7
  name: Ruby specs
8
8
  runs-on: ${{ matrix.os }}
9
9
  continue-on-error: ${{ endsWith(matrix.ruby, 'head') || matrix.ruby == 'debug' || matrix.experimental }}
10
- env:
11
- BUNDLE_JOBS: 4
12
- BUNDLE_RETRY: 3
13
10
  strategy:
14
11
  fail-fast: false
15
12
  matrix:
16
13
  os: [ubuntu-latest]
17
- ruby: [
18
- 2.4,
19
- 2.5,
20
- 2.6,
21
- 2.7,
22
- 3.0
23
- ]
24
- gemfile: [
25
- "gemfiles/Gemfile-rails.5.2.x",
26
- "gemfiles/Gemfile-rails.6.0.x",
27
- "gemfiles/Gemfile-rails.6.1.x"
28
- ]
14
+ ruby:
15
+ - 2.7
16
+ - "3.0"
17
+ gemfile:
18
+ - gemfiles/Gemfile-rails.5.2.x
19
+ - gemfiles/Gemfile-rails.6.0.x
20
+ - gemfiles/Gemfile-rails.6.1.x
29
21
  exclude:
30
- - ruby: 2.4
31
- gemfile: gemfiles/Gemfile-rails.6.0.x
32
- - ruby: 2.4
33
- gemfile: gemfiles/Gemfile-rails.6.1.x
34
22
  - ruby: 2.5
35
23
  gemfile: gemfiles/Gemfile-rails.6.1.x
36
- - ruby: 3.0
24
+ - ruby: "3.0"
37
25
  gemfile: gemfiles/Gemfile-rails.5.2.x
38
26
  experimental: [false]
39
27
  include:
@@ -41,33 +29,20 @@ jobs:
41
29
  os: ubuntu-latest
42
30
  gemfile: gemfiles/Gemfile-rails-edge
43
31
  experimental: true
44
- - ruby: 3.0
32
+ - ruby: "3.0"
45
33
  os: ubuntu-latest
46
34
  gemfile: gemfiles/Gemfile-rails-edge
47
35
  experimental: true
48
36
 
37
+ env:
38
+ BUNDLE_GEMFILE: ${{ matrix.gemfile }}
49
39
  steps:
50
40
  - uses: actions/checkout@v2
51
- - uses: actions/cache@v2
52
- with:
53
- path: /home/runner/bundle
54
- key: bundle-use-ruby-${{ matrix.ruby }}-${{ matrix.gemfile }}-gems-${{ hashFiles(matrix.gemfile) }}-${{ hashFiles('**/*.gemspec') }}
55
- restore-keys: |
56
- bundle-use-ruby-${{ matrix.ruby }}-${{ matrix.gemfile }}-gems-
57
-
58
- - name: Install yarn maybe
59
- run: which yarn || sudo npm install -g yarn
60
41
 
61
42
  - uses: ruby/setup-ruby@v1
62
43
  with:
63
44
  ruby-version: ${{ matrix.ruby }}
64
-
65
- - name: Bundle install
66
- run: |
67
- gem install bundler -v 2.1.4
68
- bundle config path /home/runner/bundle
69
- bundle config --global gemfile ${{ matrix.gemfile }}
70
- bundle install --jobs 4 --retry 3
45
+ bundler-cache: true # Run "bundle install", and cache the result automatically.
71
46
 
72
47
  - name: Ruby specs
73
- run: bundle exec rake test
48
+ run: bundle exec rake
data/.rubocop.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  require: rubocop-performance
2
2
  AllCops:
3
- TargetRubyVersion: 2.4
3
+ TargetRubyVersion: 2.7
4
4
  # RuboCop has a bunch of cops enabled by default. This setting tells RuboCop
5
5
  # to ignore them, so only the ones explicitly set in this file are enabled.
6
6
  DisabledByDefault: true
data/CHANGELOG.md CHANGED
@@ -2,7 +2,7 @@
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
- ## [[6.0.0]](https://github.com/rails/webpacker/compare/v5.1.1...master) - 2021-TBD
5
+ ## [[6.0.0]](https://github.com/rails/webpacker/compare/v5.4.3...master) - 2021-TBD
6
6
 
7
7
  Please see [UPGRADE GUIDE](./docs/v6_upgrade.md) for more information.
8
8
 
@@ -26,14 +26,26 @@ environment.loaders.append('nodeModules', nodeModules)
26
26
  - Splitchunks enabled by default
27
27
  - CSS extraction enabled by default, except when devServer is configured and running
28
28
 
29
+ ## [[5.4.3]](https://github.com/rails/webpacker/compare/v5.4.2...v5.4.3) - 2021-09-14
30
+
31
+ - Specify webpack-dev-server to be v3, to avoid getting webpack-dev-server v4 ([#3121](https://github.com/rails/webpacker/pull/3121))
32
+
33
+ ## [[5.4.2]](https://github.com/rails/webpacker/compare/v5.4.1...v5.4.2) - 2021-08-20
34
+
35
+ - Fix babel warning about private-methods in `@babel/plugin-proposal-private-property-in-object` as well ([67fa6edf](https://github.com/rails/webpacker/commit/67fa6edf697340cbd5a5518afebac871ef74769b)).
36
+
37
+ ## [[5.4.1]](https://github.com/rails/webpacker/compare/v5.4.0...v5.4.1) - 2021-08-20
38
+
39
+ - Update all dependencies within the same major version ([#3120](https://github.com/rails/webpacker/pull/3120))
40
+ - Fix babel warning about private-methods ([#3016](https://github.com/rails/webpacker/pull/3016))
41
+
29
42
  ## [[5.4.0]](https://github.com/rails/webpacker/compare/v5.3.0...v5.4.0) - 2021-05-18
30
43
 
31
- - Fix compatibility with Psych 4
44
+ - Fix compatibility with Psych 4 ([ceaf826d](https://github.com/rails/webpacker/commit/ceaf826d84230aaadbefdbaaf560d474a96affcc))
32
45
 
33
46
  ## [[5.3.0]](https://github.com/rails/webpacker/compare/v5.2.1...v5.3.0) - 2021-04-27
34
47
 
35
48
  - Adds experimental Yarn 2 support. Note you must manually set `nodeLinker: node-modules` in your `.yarnrc.yml`.
36
-
37
49
  - Keep backups, even when they're old [#2912](https://github.com/rails/webpacker/pull/2912)
38
50
 
39
51
  ## [[5.2.2]](https://github.com/rails/webpacker/compare/v5.2.1...v5.2.2) - 2021-04-27
data/CONTRIBUTING.md CHANGED
@@ -3,31 +3,50 @@
3
3
  1. Install [Yarn](https://yarnpkg.com/)
4
4
 
5
5
  2. Run the following commands to set up the development environment.
6
+
6
7
  ```
7
8
  bundle install
8
9
  yarn
9
10
  ```
10
11
 
11
12
  ## Making sure your changes pass all tests
13
+
12
14
  There are a number of automated checks which run on GitHub Actions when a pull request is created.
15
+
13
16
  You can run those checks on your own locally to make sure that your changes would not break the CI build.
14
17
 
15
18
  ### 1. Check the code for JavaScript style violations
19
+
16
20
  ```
17
21
  yarn lint
18
22
  ```
19
23
 
20
24
  ### 2. Check the code for Ruby style violations
25
+
21
26
  ```
22
27
  bundle exec rubocop
23
28
  ```
24
29
 
25
30
  ### 3. Run the JavaScript test suite
31
+
26
32
  ```
27
33
  yarn test
28
34
  ```
29
35
 
30
36
  ### 4. Run the Ruby test suite
37
+
31
38
  ```
32
39
  bundle exec rake test
33
40
  ```
41
+
42
+ #### 4.1 Run a single ruby test file
43
+
44
+ ```
45
+ bundle exec rake test TEST=test/rake_tasks_test.rb
46
+ ```
47
+
48
+ #### 4.2 Run a single ruby test
49
+
50
+ ```
51
+ ruby -I test test/rake_tasks_test.rb -n test_rake_webpacker_install
52
+ ```
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- webpacker (6.0.0.rc.2)
4
+ webpacker (6.0.0.rc.6)
5
5
  activesupport (>= 5.2)
6
6
  rack-proxy (>= 0.6.1)
7
7
  railties (>= 5.2)
@@ -10,60 +10,60 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- actioncable (6.1.3.1)
14
- actionpack (= 6.1.3.1)
15
- activesupport (= 6.1.3.1)
13
+ actioncable (6.1.4.1)
14
+ actionpack (= 6.1.4.1)
15
+ activesupport (= 6.1.4.1)
16
16
  nio4r (~> 2.0)
17
17
  websocket-driver (>= 0.6.1)
18
- actionmailbox (6.1.3.1)
19
- actionpack (= 6.1.3.1)
20
- activejob (= 6.1.3.1)
21
- activerecord (= 6.1.3.1)
22
- activestorage (= 6.1.3.1)
23
- activesupport (= 6.1.3.1)
18
+ actionmailbox (6.1.4.1)
19
+ actionpack (= 6.1.4.1)
20
+ activejob (= 6.1.4.1)
21
+ activerecord (= 6.1.4.1)
22
+ activestorage (= 6.1.4.1)
23
+ activesupport (= 6.1.4.1)
24
24
  mail (>= 2.7.1)
25
- actionmailer (6.1.3.1)
26
- actionpack (= 6.1.3.1)
27
- actionview (= 6.1.3.1)
28
- activejob (= 6.1.3.1)
29
- activesupport (= 6.1.3.1)
25
+ actionmailer (6.1.4.1)
26
+ actionpack (= 6.1.4.1)
27
+ actionview (= 6.1.4.1)
28
+ activejob (= 6.1.4.1)
29
+ activesupport (= 6.1.4.1)
30
30
  mail (~> 2.5, >= 2.5.4)
31
31
  rails-dom-testing (~> 2.0)
32
- actionpack (6.1.3.1)
33
- actionview (= 6.1.3.1)
34
- activesupport (= 6.1.3.1)
32
+ actionpack (6.1.4.1)
33
+ actionview (= 6.1.4.1)
34
+ activesupport (= 6.1.4.1)
35
35
  rack (~> 2.0, >= 2.0.9)
36
36
  rack-test (>= 0.6.3)
37
37
  rails-dom-testing (~> 2.0)
38
38
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
39
- actiontext (6.1.3.1)
40
- actionpack (= 6.1.3.1)
41
- activerecord (= 6.1.3.1)
42
- activestorage (= 6.1.3.1)
43
- activesupport (= 6.1.3.1)
39
+ actiontext (6.1.4.1)
40
+ actionpack (= 6.1.4.1)
41
+ activerecord (= 6.1.4.1)
42
+ activestorage (= 6.1.4.1)
43
+ activesupport (= 6.1.4.1)
44
44
  nokogiri (>= 1.8.5)
45
- actionview (6.1.3.1)
46
- activesupport (= 6.1.3.1)
45
+ actionview (6.1.4.1)
46
+ activesupport (= 6.1.4.1)
47
47
  builder (~> 3.1)
48
48
  erubi (~> 1.4)
49
49
  rails-dom-testing (~> 2.0)
50
50
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
51
- activejob (6.1.3.1)
52
- activesupport (= 6.1.3.1)
51
+ activejob (6.1.4.1)
52
+ activesupport (= 6.1.4.1)
53
53
  globalid (>= 0.3.6)
54
- activemodel (6.1.3.1)
55
- activesupport (= 6.1.3.1)
56
- activerecord (6.1.3.1)
57
- activemodel (= 6.1.3.1)
58
- activesupport (= 6.1.3.1)
59
- activestorage (6.1.3.1)
60
- actionpack (= 6.1.3.1)
61
- activejob (= 6.1.3.1)
62
- activerecord (= 6.1.3.1)
63
- activesupport (= 6.1.3.1)
54
+ activemodel (6.1.4.1)
55
+ activesupport (= 6.1.4.1)
56
+ activerecord (6.1.4.1)
57
+ activemodel (= 6.1.4.1)
58
+ activesupport (= 6.1.4.1)
59
+ activestorage (6.1.4.1)
60
+ actionpack (= 6.1.4.1)
61
+ activejob (= 6.1.4.1)
62
+ activerecord (= 6.1.4.1)
63
+ activesupport (= 6.1.4.1)
64
64
  marcel (~> 1.0.0)
65
- mini_mime (~> 1.0.2)
66
- activesupport (6.1.3.1)
65
+ mini_mime (>= 1.1.0)
66
+ activesupport (6.1.4.1)
67
67
  concurrent-ruby (~> 1.0, >= 1.0.2)
68
68
  i18n (>= 1.6, < 2)
69
69
  minitest (>= 5.1)
@@ -72,79 +72,79 @@ GEM
72
72
  ast (2.4.2)
73
73
  builder (3.2.4)
74
74
  byebug (11.1.3)
75
- concurrent-ruby (1.1.8)
75
+ concurrent-ruby (1.1.9)
76
76
  crass (1.0.6)
77
77
  erubi (1.10.0)
78
- globalid (0.4.2)
79
- activesupport (>= 4.2.0)
78
+ globalid (0.5.2)
79
+ activesupport (>= 5.0)
80
80
  i18n (1.8.10)
81
81
  concurrent-ruby (~> 1.0)
82
- loofah (2.9.1)
82
+ loofah (2.12.0)
83
83
  crass (~> 1.0.2)
84
84
  nokogiri (>= 1.5.9)
85
85
  mail (2.7.1)
86
86
  mini_mime (>= 0.1.1)
87
- marcel (1.0.1)
87
+ marcel (1.0.2)
88
88
  method_source (1.0.0)
89
- mini_mime (1.0.3)
90
- mini_portile2 (2.5.0)
89
+ mini_mime (1.1.1)
90
+ mini_portile2 (2.6.1)
91
91
  minitest (5.14.4)
92
- nio4r (2.5.7)
93
- nokogiri (1.11.3)
94
- mini_portile2 (~> 2.5.0)
92
+ nio4r (2.5.8)
93
+ nokogiri (1.12.4)
94
+ mini_portile2 (~> 2.6.1)
95
95
  racc (~> 1.4)
96
- parallel (1.20.1)
97
- parser (3.0.1.0)
96
+ parallel (1.21.0)
97
+ parser (3.0.2.0)
98
98
  ast (~> 2.4.1)
99
99
  racc (1.5.2)
100
100
  rack (2.2.3)
101
- rack-proxy (0.6.5)
101
+ rack-proxy (0.7.0)
102
102
  rack
103
103
  rack-test (1.1.0)
104
104
  rack (>= 1.0, < 3)
105
- rails (6.1.3.1)
106
- actioncable (= 6.1.3.1)
107
- actionmailbox (= 6.1.3.1)
108
- actionmailer (= 6.1.3.1)
109
- actionpack (= 6.1.3.1)
110
- actiontext (= 6.1.3.1)
111
- actionview (= 6.1.3.1)
112
- activejob (= 6.1.3.1)
113
- activemodel (= 6.1.3.1)
114
- activerecord (= 6.1.3.1)
115
- activestorage (= 6.1.3.1)
116
- activesupport (= 6.1.3.1)
105
+ rails (6.1.4.1)
106
+ actioncable (= 6.1.4.1)
107
+ actionmailbox (= 6.1.4.1)
108
+ actionmailer (= 6.1.4.1)
109
+ actionpack (= 6.1.4.1)
110
+ actiontext (= 6.1.4.1)
111
+ actionview (= 6.1.4.1)
112
+ activejob (= 6.1.4.1)
113
+ activemodel (= 6.1.4.1)
114
+ activerecord (= 6.1.4.1)
115
+ activestorage (= 6.1.4.1)
116
+ activesupport (= 6.1.4.1)
117
117
  bundler (>= 1.15.0)
118
- railties (= 6.1.3.1)
118
+ railties (= 6.1.4.1)
119
119
  sprockets-rails (>= 2.0.0)
120
120
  rails-dom-testing (2.0.3)
121
121
  activesupport (>= 4.2.0)
122
122
  nokogiri (>= 1.6)
123
- rails-html-sanitizer (1.3.0)
123
+ rails-html-sanitizer (1.4.2)
124
124
  loofah (~> 2.3)
125
- railties (6.1.3.1)
126
- actionpack (= 6.1.3.1)
127
- activesupport (= 6.1.3.1)
125
+ railties (6.1.4.1)
126
+ actionpack (= 6.1.4.1)
127
+ activesupport (= 6.1.4.1)
128
128
  method_source
129
- rake (>= 0.8.7)
129
+ rake (>= 0.13)
130
130
  thor (~> 1.0)
131
131
  rainbow (3.0.0)
132
- rake (13.0.3)
132
+ rake (13.0.6)
133
133
  regexp_parser (2.1.1)
134
134
  rexml (3.2.5)
135
- rubocop (0.93.1)
135
+ rubocop (1.21.0)
136
136
  parallel (~> 1.10)
137
- parser (>= 2.7.1.5)
137
+ parser (>= 3.0.0.0)
138
138
  rainbow (>= 2.2.2, < 4.0)
139
- regexp_parser (>= 1.8)
139
+ regexp_parser (>= 1.8, < 3.0)
140
140
  rexml
141
- rubocop-ast (>= 0.6.0)
141
+ rubocop-ast (>= 1.9.1, < 2.0)
142
142
  ruby-progressbar (~> 1.7)
143
- unicode-display_width (>= 1.4.0, < 2.0)
144
- rubocop-ast (1.4.1)
145
- parser (>= 2.7.1.5)
146
- rubocop-performance (1.10.2)
147
- rubocop (>= 0.90.0, < 2.0)
143
+ unicode-display_width (>= 1.4.0, < 3.0)
144
+ rubocop-ast (1.11.0)
145
+ parser (>= 3.0.1.1)
146
+ rubocop-performance (1.11.5)
147
+ rubocop (>= 1.7.0, < 2.0)
148
148
  rubocop-ast (>= 0.4.0)
149
149
  ruby-progressbar (1.11.0)
150
150
  semantic_range (3.0.0)
@@ -158,8 +158,8 @@ GEM
158
158
  thor (1.1.0)
159
159
  tzinfo (2.0.4)
160
160
  concurrent-ruby (~> 1.0)
161
- unicode-display_width (1.7.0)
162
- websocket-driver (0.7.3)
161
+ unicode-display_width (2.1.0)
162
+ websocket-driver (0.7.5)
163
163
  websocket-extensions (>= 0.1.0)
164
164
  websocket-extensions (0.1.5)
165
165
  zeitwerk (2.4.2)
@@ -174,10 +174,10 @@ DEPENDENCIES
174
174
  rack-proxy
175
175
  rails
176
176
  rake (>= 11.1)
177
- rubocop (= 0.93.1)
177
+ rubocop
178
178
  rubocop-performance
179
179
  semantic_range
180
180
  webpacker!
181
181
 
182
182
  BUNDLED WITH
183
- 2.2.25
183
+ 2.2.30
data/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  Webpacker makes it easy to use the JavaScript pre-processor and bundler
12
12
  [Webpack v5](https://webpack.js.org/)
13
13
  to manage application-like JavaScript in Rails. It can coexist with the asset pipeline,
14
- leaving Webpack responsible solely for app-like JavaScript, or it can be used exclusively, making it also responsible for images, fronts, and CSS as well.
14
+ leaving Webpack responsible solely for app-like JavaScript, or it can be used exclusively, making it also responsible for images, fonts, and CSS.
15
15
 
16
16
  **NOTE:** The master branch now hosts the code for v6.x.x. Please refer to [5-x-stable](https://github.com/rails/webpacker/tree/5-x-stable) branch for 5.x documentation.
17
17
 
@@ -54,8 +54,8 @@ leaving Webpack responsible solely for app-like JavaScript, or it can be used ex
54
54
 
55
55
  - Ruby 2.4+
56
56
  - Rails 5.2+
57
- - Node.js 12+ || 14+
58
- - Yarn 1.x+ || 2.x+
57
+ - Node.js 12.13.0+ || 14+
58
+ - Yarn
59
59
 
60
60
  ## Features
61
61
 
@@ -78,10 +78,10 @@ leaving Webpack responsible solely for app-like JavaScript, or it can be used ex
78
78
 
79
79
  ## Installation
80
80
 
81
- You can configure a new Rails application with Webpacker right from the start using the `--webpack` option:
81
+ You can configure a new Rails application with Webpacker right from the start using the `-j webpack` option:
82
82
 
83
83
  ```bash
84
- rails new myapp --webpack
84
+ rails new myapp -j webpack
85
85
  ```
86
86
 
87
87
  Or you can add it later by changing your `Gemfile`:
@@ -113,11 +113,10 @@ yarn install
113
113
  Once installed, you can start writing modern ES6-flavored JavaScript apps right away:
114
114
 
115
115
  ```yml
116
- app/packs:
117
- ├── entrypoints:
118
- │ # Only Webpack entry files here
119
- └── application.js
120
- │ └── application.css
116
+ app/javascript:
117
+ # Only Webpack entry files here
118
+ └── application.js
119
+ └── application.css
121
120
  └── src:
122
121
  │ └── my_component.js
123
122
  └── stylesheets:
@@ -139,13 +138,13 @@ packs with the chunks in your view, which creates html tags for all the chunks.
139
138
  The result looks like this:
140
139
 
141
140
  ```erb
142
- <%= javascript_pack_tag 'calendar', 'map' %>
141
+ <%= javascript_pack_tag 'calendar', 'map', 'data-turbolinks-track': 'reload' %>
143
142
 
144
- <script src="/packs/vendor-16838bab065ae1e314.js" data-turbolinks-track="reload"></script>
145
- <script src="/packs/calendar~runtime-16838bab065ae1e314.js" data-turbolinks-track="reload"></script>
146
- <script src="/packs/calendar-1016838bab065ae1e314.js" data-turbolinks-track="reload"></script>
147
- <script src="/packs/map~runtime-16838bab065ae1e314.js" data-turbolinks-track="reload"></script>
148
- <script src="/packs/map-16838bab065ae1e314.js" data-turbolinks-track="reload"></script>
143
+ <script src="/packs/vendor-16838bab065ae1e314.js" data-turbolinks-track="reload" defer></script>
144
+ <script src="/packs/calendar~runtime-16838bab065ae1e314.js" data-turbolinks-track="reload" defer></script>
145
+ <script src="/packs/calendar-1016838bab065ae1e314.js" data-turbolinks-track="reload" defer"></script>
146
+ <script src="/packs/map~runtime-16838bab065ae1e314.js" data-turbolinks-track="reload" defer></script>
147
+ <script src="/packs/map-16838bab065ae1e314.js" data-turbolinks-track="reload" defer></script>
149
148
  ```
150
149
 
151
150
  **Important:** Pass all your pack names as multiple arguments, not multiple calls, when using `javascript_pack_tag` and the **`stylesheet_pack_tag`. Otherwise, you will get duplicated chunks on the page. Be especially careful if you might be calling these view helpers from your view, partials, and the layout for a page. You will need some logic to ensure you call the helpers only once with multiple arguments.
@@ -190,31 +189,41 @@ If you want to use images in your stylesheets:
190
189
  background-image: url('../images/logo.svg')
191
190
  }
192
191
  ```
192
+ ##### Defer for `javascript_pack_tag`
193
+ Note, the default of "defer" for the `javascript_pack_tag`. You can override that to `false`. If you expose jquery globally with `expose-loader,` by using `import $ from "expose-loader?exposes=$,jQuery!jquery"` in your `app/packs/entrypoints/application.js`, pass the option `defer: false` to your `javascript_pack_tag`.
193
194
 
194
195
  #### Server-Side Rendering (SSR)
195
196
 
196
- Note, if you are using server-side rendering of JavaScript with dynamic code-spliting, as is often done with extensions to Webpacker, like [React on Rails](https://github.com/shakacode/react_on_rails), your JavaScript should create the link prefetch HTML tags that you will use, so you won't need to use to `asset_pack_path` in those circumstances.
197
+ Note, if you are using server-side rendering of JavaScript with dynamic code-splitting, as is often done with extensions to Webpacker, like [React on Rails](https://github.com/shakacode/react_on_rails), your JavaScript should create the link prefetch HTML tags that you will use, so you won't need to use to `asset_pack_path` in those circumstances.
197
198
 
198
199
  **Note:** In order for your styles or static assets files to be available in your view, you would need to link them in your "pack" or entry file. Otherwise, Webpack won't know to package up those files.
199
200
 
200
-
201
201
  ### Development
202
202
 
203
203
  Webpacker ships with two binstubs: `./bin/webpack` and `./bin/webpack-dev-server`. Both are thin wrappers around the standard `webpack.js` and `webpack-dev-server.js` executables to ensure that the right configuration files and environmental variables are loaded based on your environment.
204
204
 
205
205
  In development, Webpacker compiles on demand rather than upfront by default. This happens when you refer to any of the pack assets using the Webpacker helper methods. This means that you don't have to run any separate processes. Compilation errors are logged to the standard Rails log. However, this auto-compilation happens when a web request is made that requires an updated webpack build, not when files change. Thus, that can be painfully slow for front-end development in this default way. Instead, you should either run the `bin/webpack --watch` or run `./bin/webpack-dev-server`
206
206
 
207
- If you want to use live code reloading, or you have enough JavaScript that on-demand compilation is too slow, you'll need to run `./bin/webpack-dev-server` or `ruby ./bin/webpack-dev-server`. Windows users will need to run these commands in a terminal separate from `bundle exec rails s`. This process will watch for changes in the `app/packs/entrypoints/*.js` files and automatically reload the browser to match. This feature is also known as [Hot Module Replacement](https://webpack.js.org/concepts/hot-module-replacement/).
207
+ If you want to use live code reloading, or you have enough JavaScript that on-demand compilation is too slow, you'll need to run `./bin/webpack-dev-server` or `ruby ./bin/webpack-dev-server`. Windows users will need to run these commands in a terminal separate from `bundle exec rails s`. This process will watch for changes in the relevant files, defined by `webpacker.yml` configuration settings for `source_path`, `source_entry_path`, and `additional_paths`, and it will then automatically reload the browser to match. This feature is also known as [Hot Module Replacement](https://webpack.js.org/concepts/hot-module-replacement/).
208
208
 
209
209
  ```bash
210
210
  # webpack dev server
211
211
  ./bin/webpack-dev-server
212
212
 
213
213
  # watcher
214
- ./bin/webpack --watch --colors --progress
214
+ ./bin/webpack --watch --progress
215
215
 
216
216
  # standalone build
217
- ./bin/webpack
217
+ ./bin/webpack --progress
218
+
219
+ # Help
220
+ ./bin/webpack help
221
+
222
+ # Version
223
+ ./bin/webpack version
224
+
225
+ # Info
226
+ ./bin/webpack info
218
227
  ```
219
228
 
220
229
  Once you start this webpack development server, Webpacker will automatically start proxying all webpack asset requests to this server. When you stop this server, Rails will detect that it's not running and Rails will revert back to on-demand compilation _if_ you have the `compile` option set to true in your `config/webpacker.yml`
@@ -160,7 +160,11 @@ default: &default
160
160
 
161
161
  ### Using global variables for dependencies
162
162
 
163
- If you want to access any dependency without importing it everywhere or use it directly in your dev tools, please check: [https://webpack.js.org/plugins/provide-plugin/](https://webpack.js.org/plugins/provide-plugin/)
163
+ If you want to access any dependency without importing it everywhere or use it directly in your dev tools, please check: [https://webpack.js.org/plugins/provide-plugin/](https://webpack.js.org/plugins/provide-plugin/) and the [webpack docs on shimming globals](https://webpack.js.org/guides/shimming/#shimming-globals).
164
+
165
+ Note, if you are exposing globals, like jQuery, to non-webpack dependencies (like an inline script) via the [expose-loader](https://webpack.js.org/loaders/expose-loader/), you will need to override the default of `defer: true` to be `defer:false` your call to the `javascript_pack_tag` so that the browser will load your bundle to setup the global variable before other code depends on it. However, you really should try to remove the dependendency on such globals.
166
+
167
+ Thus ProvidePlugin manages build-time dependencies to global symbols whereas the expose-loader manages runtime dependencies to global symbols.
164
168
 
165
169
  **You don't need to assign dependencies on `window`.**
166
170