webpacker 4.0.7 → 5.4.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.eslintrc.js +8 -8
- data/.github/workflows/jest.yml +38 -0
- data/.github/workflows/js-lint.yml +39 -0
- data/.github/workflows/rubocop.yml +39 -0
- data/.github/workflows/ruby.yml +46 -0
- data/.node-version +1 -1
- data/.rubocop.yml +118 -14
- data/CHANGELOG.md +301 -138
- data/CONTRIBUTING.md +1 -1
- data/Gemfile +1 -0
- data/Gemfile.lock +123 -92
- data/README.md +86 -211
- data/docs/css.md +72 -6
- data/docs/deployment.md +40 -11
- data/docs/docker.md +33 -14
- data/docs/engines.md +53 -3
- data/docs/env.md +0 -2
- data/docs/es6.md +19 -1
- data/docs/integrations.md +220 -0
- data/docs/target.md +22 -0
- data/docs/testing.md +2 -3
- data/docs/troubleshooting.md +39 -9
- data/docs/typescript.md +93 -26
- data/docs/webpack-dev-server.md +2 -2
- data/docs/webpack.md +18 -3
- data/gemfiles/Gemfile-rails-edge +1 -1
- data/gemfiles/{Gemfile-rails.4.2.x → Gemfile-rails.6.0.x} +1 -1
- 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 +23 -13
- data/lib/install/config/webpacker.yml +3 -6
- 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 +28 -14
- data/lib/install/examples/react/tsconfig.json +2 -1
- data/lib/install/examples/svelte/app.svelte +11 -0
- data/lib/install/examples/svelte/hello_svelte.js +20 -0
- data/lib/install/examples/typescript/tsconfig.json +2 -1
- data/lib/install/loaders/elm.js +9 -6
- data/lib/install/loaders/svelte.js +9 -0
- data/lib/install/svelte.rb +29 -0
- data/lib/install/template.rb +14 -6
- data/lib/install/typescript.rb +6 -13
- data/lib/install/vue.rb +1 -1
- data/lib/tasks/installers.rake +1 -0
- data/lib/tasks/webpacker/check_node.rake +15 -8
- data/lib/tasks/webpacker/check_yarn.rake +16 -10
- data/lib/tasks/webpacker/clean.rake +25 -0
- data/lib/tasks/webpacker/clobber.rake +8 -4
- data/lib/tasks/webpacker/compile.rake +2 -10
- data/lib/tasks/webpacker/yarn_install.rake +11 -1
- data/lib/tasks/webpacker.rake +2 -0
- data/lib/webpacker/commands.rb +53 -1
- data/lib/webpacker/compiler.rb +21 -10
- data/lib/webpacker/configuration.rb +36 -13
- data/lib/webpacker/dev_server.rb +1 -1
- data/lib/webpacker/dev_server_proxy.rb +5 -9
- data/lib/webpacker/dev_server_runner.rb +6 -6
- data/lib/webpacker/env.rb +6 -2
- data/lib/webpacker/helper.rb +70 -25
- data/lib/webpacker/manifest.rb +4 -4
- data/lib/webpacker/railtie.rb +6 -43
- data/lib/webpacker/runner.rb +1 -0
- data/lib/webpacker/version.rb +1 -1
- data/lib/webpacker/webpack_runner.rb +2 -2
- data/lib/webpacker.rb +9 -1
- data/package/__tests__/config.js +12 -24
- data/package/__tests__/dev_server.js +2 -0
- data/package/__tests__/development.js +14 -1
- data/package/config.js +6 -11
- data/package/configPath.js +3 -0
- data/package/config_types/config_list.js +3 -3
- data/package/config_types/config_object.js +1 -1
- data/package/dev_server.js +1 -1
- data/package/env.js +1 -2
- data/package/environments/__tests__/base.js +29 -2
- data/package/environments/base.js +18 -8
- data/package/environments/development.js +39 -37
- data/package/environments/production.js +12 -2
- data/package/rules/babel.js +12 -5
- data/package/rules/file.js +3 -2
- data/package/rules/node_modules.js +3 -5
- data/package/rules/sass.js +11 -2
- 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 +10 -10
- data/package.json +43 -43
- data/test/command_test.rb +6 -0
- data/test/compiler_test.rb +10 -6
- data/test/configuration_test.rb +40 -30
- data/test/dev_server_runner_test.rb +1 -1
- data/test/dev_server_test.rb +22 -0
- data/test/helper_test.rb +58 -9
- data/test/manifest_test.rb +37 -6
- data/test/rake_tasks_test.rb +17 -0
- data/test/test_app/app/javascript/packs/multi_entry.css +4 -0
- data/test/test_app/app/javascript/packs/multi_entry.js +4 -0
- data/test/test_app/bin/webpack +0 -1
- data/test/test_app/bin/webpack-dev-server +0 -1
- data/test/test_app/config/application.rb +0 -1
- data/test/test_app/config/webpacker.yml +8 -1
- data/test/test_app/public/packs/manifest.json +4 -0
- data/test/webpack_runner_test.rb +1 -1
- data/webpacker.gemspec +6 -4
- data/yarn.lock +4350 -4099
- metadata +63 -23
- data/.travis.yml +0 -53
- data/gemfiles/Gemfile-rails.5.0.x +0 -9
- data/gemfiles/Gemfile-rails.5.1.x +0 -9
- data/lib/install/loaders/typescript.js +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0370a980c6e40b16b54b814c08883722bd218a9dcfc8a7d6678cb2d93bba9a46
|
4
|
+
data.tar.gz: caa8625ecc6fd35bd5906007574671c542232d1fc899304d0de5dec507afbaf2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a189c9360243cd577442a4373e2d10c98262730a0539dbfb35ea24f9fab45b365964b53f9184c3ee3c261bd561b2aa1bb504057318400b5bf94a87441ce1d1e
|
7
|
+
data.tar.gz: 53e0c0fcd2bd906ea5099c5d10bbccd6ef0e462c398b12345730dab201362e008d858c22bae89377144e4ddee18ae0942927f9c94b334816a137e79111581fa1
|
data/.eslintrc.js
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
module.exports = {
|
2
|
-
|
3
|
-
|
2
|
+
extends: 'airbnb',
|
3
|
+
rules: {
|
4
4
|
'comma-dangle': ['error', 'never'],
|
5
5
|
'import/no-unresolved': 'off',
|
6
6
|
'import/no-extraneous-dependencies': 'off',
|
7
7
|
'import/extensions': 'off',
|
8
|
-
semi: ['error', 'never']
|
8
|
+
semi: ['error', 'never']
|
9
9
|
},
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
}
|
14
|
-
}
|
10
|
+
env: {
|
11
|
+
browser: true,
|
12
|
+
node: true
|
13
|
+
}
|
14
|
+
}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
name: Jest specs
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
name: Jest specs
|
8
|
+
strategy:
|
9
|
+
matrix:
|
10
|
+
os: [ubuntu-latest]
|
11
|
+
node: [10.x, 12.x, 14.x]
|
12
|
+
|
13
|
+
runs-on: ${{ matrix.os }}
|
14
|
+
|
15
|
+
steps:
|
16
|
+
- uses: actions/checkout@v2
|
17
|
+
- name: Get yarn cache directory path
|
18
|
+
id: yarn-cache-dir-path
|
19
|
+
run: echo "::set-output name=dir::$(yarn cache dir)"
|
20
|
+
|
21
|
+
- uses: actions/cache@v2
|
22
|
+
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
|
23
|
+
with:
|
24
|
+
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
25
|
+
key: ${{ runner.os }}-${{ matrix.node }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
26
|
+
restore-keys: |
|
27
|
+
${{ runner.os }}-${{ matrix.node }}-yarn-
|
28
|
+
|
29
|
+
- name: Use Node.js ${{ matrix.node }}
|
30
|
+
uses: actions/setup-node@v1
|
31
|
+
with:
|
32
|
+
node-version: ${{ matrix.node }}
|
33
|
+
|
34
|
+
- name: Install dependencies
|
35
|
+
run: yarn --frozen-lockfile
|
36
|
+
|
37
|
+
- name: Jest Specs
|
38
|
+
run: yarn test
|
@@ -0,0 +1,39 @@
|
|
1
|
+
name: JS lint
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
name: JS Lint
|
8
|
+
|
9
|
+
strategy:
|
10
|
+
matrix:
|
11
|
+
os: [ubuntu-latest]
|
12
|
+
node: [12.x]
|
13
|
+
|
14
|
+
runs-on: ${{ matrix.os }}
|
15
|
+
|
16
|
+
steps:
|
17
|
+
- uses: actions/checkout@v2
|
18
|
+
- name: Get yarn cache directory path
|
19
|
+
id: yarn-cache-dir-path
|
20
|
+
run: echo "::set-output name=dir::$(yarn cache dir)"
|
21
|
+
|
22
|
+
- uses: actions/cache@v2
|
23
|
+
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
|
24
|
+
with:
|
25
|
+
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
|
26
|
+
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
27
|
+
restore-keys: |
|
28
|
+
${{ runner.os }}-yarn-
|
29
|
+
|
30
|
+
- name: Use Node.js ${{ matrix.node }}
|
31
|
+
uses: actions/setup-node@v1
|
32
|
+
with:
|
33
|
+
node-version: ${{ matrix.node }}
|
34
|
+
|
35
|
+
- name: Install dependencies
|
36
|
+
run: yarn --frozen-lockfile
|
37
|
+
|
38
|
+
- name: Lint
|
39
|
+
run: yarn lint
|
@@ -0,0 +1,39 @@
|
|
1
|
+
name: Rubocop
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
name: Rubocop
|
8
|
+
runs-on: ${{ matrix.os }}
|
9
|
+
env:
|
10
|
+
BUNDLE_JOBS: 4
|
11
|
+
BUNDLE_RETRY: 3
|
12
|
+
strategy:
|
13
|
+
matrix:
|
14
|
+
os: [ubuntu-latest]
|
15
|
+
ruby: [
|
16
|
+
2.7
|
17
|
+
]
|
18
|
+
|
19
|
+
steps:
|
20
|
+
- uses: actions/checkout@v2
|
21
|
+
- uses: actions/cache@v2
|
22
|
+
with:
|
23
|
+
path: /home/runner/bundle
|
24
|
+
key: bundle-use-ruby-gems-${{ hashFiles('**/Gemfile.lock') }}
|
25
|
+
restore-keys: |
|
26
|
+
bundle-use-ruby-gems-
|
27
|
+
|
28
|
+
- uses: ruby/setup-ruby@v1
|
29
|
+
with:
|
30
|
+
ruby-version: ${{ matrix.ruby }}
|
31
|
+
|
32
|
+
- name: Bundle install
|
33
|
+
run: |
|
34
|
+
gem install bundler -v 2.1.4
|
35
|
+
bundle config path /home/runner/bundle
|
36
|
+
bundle install
|
37
|
+
|
38
|
+
- name: Ruby linter
|
39
|
+
run: bundle exec rubocop
|
@@ -0,0 +1,46 @@
|
|
1
|
+
name: Ruby specs
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
build:
|
7
|
+
name: Ruby specs
|
8
|
+
runs-on: ${{ matrix.os }}
|
9
|
+
continue-on-error: ${{ endsWith(matrix.ruby, 'head') || matrix.ruby == 'debug' || matrix.experimental }}
|
10
|
+
strategy:
|
11
|
+
fail-fast: false
|
12
|
+
matrix:
|
13
|
+
os: [ubuntu-latest]
|
14
|
+
ruby: [
|
15
|
+
2.4,
|
16
|
+
2.5,
|
17
|
+
2.6,
|
18
|
+
2.7
|
19
|
+
]
|
20
|
+
gemfile: [
|
21
|
+
"gemfiles/Gemfile-rails.5.2.x",
|
22
|
+
"gemfiles/Gemfile-rails.6.0.x"
|
23
|
+
]
|
24
|
+
exclude:
|
25
|
+
- ruby: "2.4"
|
26
|
+
gemfile: gemfiles/Gemfile-rails.6.0.x
|
27
|
+
experimental: [false]
|
28
|
+
include:
|
29
|
+
- ruby: 2.7
|
30
|
+
os: ubuntu-latest
|
31
|
+
gemfile: gemfiles/Gemfile-rails-edge
|
32
|
+
experimental: true
|
33
|
+
|
34
|
+
env:
|
35
|
+
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
|
36
|
+
steps:
|
37
|
+
- uses: actions/checkout@v2
|
38
|
+
|
39
|
+
- uses: ruby/setup-ruby@v1
|
40
|
+
with:
|
41
|
+
ruby-version: ${{ matrix.ruby }}
|
42
|
+
bundler-cache: true
|
43
|
+
rubygems: ${{ matrix.ruby < '2.6' && 'default' || 'latest' }}
|
44
|
+
|
45
|
+
- name: Ruby specs
|
46
|
+
run: bundle exec rake test
|
data/.node-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
10.17.0
|
data/.rubocop.yml
CHANGED
@@ -1,5 +1,6 @@
|
|
1
|
+
require: rubocop-performance
|
1
2
|
AllCops:
|
2
|
-
TargetRubyVersion: 2.
|
3
|
+
TargetRubyVersion: 2.4
|
3
4
|
# RuboCop has a bunch of cops enabled by default. This setting tells RuboCop
|
4
5
|
# to ignore them, so only the ones explicitly set in this file are enabled.
|
5
6
|
DisabledByDefault: true
|
@@ -12,11 +13,6 @@ AllCops:
|
|
12
13
|
Style/AndOr:
|
13
14
|
Enabled: true
|
14
15
|
|
15
|
-
# Do not use braces for hash literals when they are the last argument of a
|
16
|
-
# method call.
|
17
|
-
Style/BracesAroundHashParameters:
|
18
|
-
Enabled: true
|
19
|
-
|
20
16
|
# Align `when` with `case`.
|
21
17
|
Layout/CaseIndentation:
|
22
18
|
Enabled: true
|
@@ -49,7 +45,11 @@ Style/HashSyntax:
|
|
49
45
|
# extra level of indentation.
|
50
46
|
Layout/IndentationConsistency:
|
51
47
|
Enabled: true
|
52
|
-
EnforcedStyle:
|
48
|
+
EnforcedStyle: indented_internal_methods
|
49
|
+
|
50
|
+
# Detect hard tabs, no hard tabs.
|
51
|
+
Layout/IndentationStyle:
|
52
|
+
Enabled: true
|
53
53
|
|
54
54
|
# Two spaces, no tabs (for indentation).
|
55
55
|
Layout/IndentationWidth:
|
@@ -71,7 +71,7 @@ Layout/SpaceAroundOperators:
|
|
71
71
|
Enabled: true
|
72
72
|
|
73
73
|
Layout/SpaceBeforeFirstArg:
|
74
|
-
|
74
|
+
Enabled: true
|
75
75
|
|
76
76
|
# Defining a method with parameters needs parentheses.
|
77
77
|
Style/MethodDefParentheses:
|
@@ -97,12 +97,8 @@ Style/StringLiterals:
|
|
97
97
|
Enabled: true
|
98
98
|
EnforcedStyle: double_quotes
|
99
99
|
|
100
|
-
# Detect hard tabs, no hard tabs.
|
101
|
-
Layout/Tab:
|
102
|
-
Enabled: true
|
103
|
-
|
104
100
|
# Blank lines should not have any spaces.
|
105
|
-
Layout/
|
101
|
+
Layout/TrailingEmptyLines:
|
106
102
|
Enabled: true
|
107
103
|
|
108
104
|
# No trailing whitespace.
|
@@ -110,7 +106,10 @@ Layout/TrailingWhitespace:
|
|
110
106
|
Enabled: true
|
111
107
|
|
112
108
|
# Use quotes for string literals when they are enough.
|
113
|
-
Style/
|
109
|
+
Style/RedundantPercentQ:
|
110
|
+
Enabled: true
|
111
|
+
|
112
|
+
Lint/DeprecatedClassMethods:
|
114
113
|
Enabled: true
|
115
114
|
|
116
115
|
# Align `end` with the matching keyword or starting expression except for
|
@@ -122,3 +121,108 @@ Layout/EndAlignment:
|
|
122
121
|
# Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
|
123
122
|
Lint/RequireParentheses:
|
124
123
|
Enabled: true
|
124
|
+
|
125
|
+
# Use `bind_call(obj, args, ...)` instead of `bind(obj).call(args, ...)`.
|
126
|
+
Performance/BindCall:
|
127
|
+
Enabled: true
|
128
|
+
|
129
|
+
# Use `caller(n..n)` instead of `caller`.
|
130
|
+
Performance/Caller:
|
131
|
+
Enabled: true
|
132
|
+
|
133
|
+
# Use `casecmp` for case comparison.
|
134
|
+
Performance/Casecmp:
|
135
|
+
Enabled: true
|
136
|
+
|
137
|
+
# Extract Array and Hash literals outside of loops into local variables or constants.
|
138
|
+
Performance/CollectionLiteralInLoop:
|
139
|
+
Enabled: true
|
140
|
+
|
141
|
+
# Prefer `sort_by(&:foo)` instead of `sort { |a, b| a.foo <=> b.foo }`.
|
142
|
+
Performance/CompareWithBlock:
|
143
|
+
Enabled: true
|
144
|
+
|
145
|
+
# Use `count` instead of `{select,find_all,filter,reject}...{size,count,length}`.
|
146
|
+
Performance/Count:
|
147
|
+
Enabled: true
|
148
|
+
|
149
|
+
# Use `delete_prefix` instead of `gsub`.
|
150
|
+
Performance/DeletePrefix:
|
151
|
+
Enabled: true
|
152
|
+
|
153
|
+
# Use `delete_suffix` instead of `gsub`.
|
154
|
+
Performance/DeleteSuffix:
|
155
|
+
Enabled: true
|
156
|
+
|
157
|
+
# Use `detect` instead of `select.first`, `find_all.first`, `filter.first`, `select.last`, `find_all.last`, and `filter.last`.
|
158
|
+
Performance/Detect:
|
159
|
+
Enabled: true
|
160
|
+
|
161
|
+
# Use `str.{start,end}_with?(x, ..., y, ...)` instead of `str.{start,end}_with?(x, ...) || str.{start,end}_with?(y, ...)`.
|
162
|
+
Performance/DoubleStartEndWith:
|
163
|
+
Enabled: true
|
164
|
+
|
165
|
+
# Use `end_with?` instead of a regex match anchored to the end of a string.
|
166
|
+
Performance/EndWith:
|
167
|
+
Enabled: true
|
168
|
+
|
169
|
+
# Do not compute the size of statically sized objects except in constants.
|
170
|
+
Performance/FixedSize:
|
171
|
+
Enabled: true
|
172
|
+
|
173
|
+
# Use `Enumerable#flat_map` instead of `Enumerable#map...Array#flatten(1).
|
174
|
+
Performance/FlatMap:
|
175
|
+
Enabled: true
|
176
|
+
|
177
|
+
# Use `key?` or `value?` instead of `keys.include?` or `values.include?`.
|
178
|
+
Performance/InefficientHashSearch:
|
179
|
+
Enabled: true
|
180
|
+
|
181
|
+
# Use `Range#cover?` instead of `Range#include?` (or `Range#member?`).
|
182
|
+
Performance/RangeInclude:
|
183
|
+
Enabled: true
|
184
|
+
|
185
|
+
# Use `yield` instead of `block.call`.
|
186
|
+
Performance/RedundantBlockCall:
|
187
|
+
Enabled: true
|
188
|
+
|
189
|
+
# Use `=~` instead of `String#match` or `Regexp#match` in a context where the returned `MatchData` is not needed.
|
190
|
+
Performance/RedundantMatch:
|
191
|
+
Enabled: true
|
192
|
+
|
193
|
+
# Use Hash#[]=, rather than Hash#merge! with a single key-value pair.
|
194
|
+
Performance/RedundantMerge:
|
195
|
+
Enabled: true
|
196
|
+
|
197
|
+
# Use `match?` instead of `Regexp#match`, `String#match`, `Symbol#match`, `Regexp#===`, or `=~` when `MatchData` is not used.
|
198
|
+
Performance/RegexpMatch:
|
199
|
+
Enabled: true
|
200
|
+
|
201
|
+
# Use `reverse_each` instead of `reverse.each`.
|
202
|
+
Performance/ReverseEach:
|
203
|
+
Enabled: true
|
204
|
+
|
205
|
+
# Use `size` instead of `count` for counting the number of elements in `Array` and `Hash`.
|
206
|
+
Performance/Size:
|
207
|
+
Enabled: true
|
208
|
+
|
209
|
+
# Use `start_with?` instead of a regex match anchored to the beginning of a string.
|
210
|
+
Performance/StartWith:
|
211
|
+
Enabled: true
|
212
|
+
|
213
|
+
# Use `tr` instead of `gsub` when you are replacing the same number of characters.
|
214
|
+
# Use `delete` instead of `gsub` when you are deleting characters.
|
215
|
+
Performance/StringReplacement:
|
216
|
+
Enabled: true
|
217
|
+
|
218
|
+
# Checks for .times.map calls.
|
219
|
+
Performance/TimesMap:
|
220
|
+
Enabled: true
|
221
|
+
|
222
|
+
# Use unary plus to get an unfrozen string literal.
|
223
|
+
Performance/UnfreezeString:
|
224
|
+
Enabled: true
|
225
|
+
|
226
|
+
# Use `URI::DEFAULT_PARSER` instead of `URI::Parser.new`.
|
227
|
+
Performance/UriDefaultParser:
|
228
|
+
Enabled: true
|