shakapacker 6.0.0.rc.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.eslintignore +4 -0
- data/.eslintrc.js +14 -0
- data/.github/ISSUE_TEMPLATE/bug_report.md +20 -0
- data/.github/ISSUE_TEMPLATE/feature-request.md +18 -0
- data/.github/workflows/jest.yml +30 -0
- data/.github/workflows/js-lint.yml +31 -0
- data/.github/workflows/rubocop.yml +39 -0
- data/.github/workflows/ruby.yml +48 -0
- data/.gitignore +13 -0
- data/.node-version +1 -0
- data/.rubocop.yml +229 -0
- data/CHANGELOG.md +32 -0
- data/CONTRIBUTING.md +62 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +183 -0
- data/MIT-LICENSE +20 -0
- data/README.md +666 -0
- data/Rakefile +11 -0
- data/config/README.md +3 -0
- data/config/webpacker.yml +1 -0
- data/docs/customizing_babel_config.md +59 -0
- data/docs/deployment.md +116 -0
- data/docs/developing_webpacker.md +29 -0
- data/docs/troubleshooting.md +212 -0
- data/docs/v6_upgrade.md +158 -0
- data/gemfiles/Gemfile-rails-edge +12 -0
- data/gemfiles/Gemfile-rails.5.2.x +9 -0
- data/gemfiles/Gemfile-rails.6.0.x +9 -0
- data/gemfiles/Gemfile-rails.6.1.x +12 -0
- data/lib/install/application.js +15 -0
- data/lib/install/bin/webpacker +15 -0
- data/lib/install/bin/webpacker-dev-server +18 -0
- data/lib/install/bin/yarn +18 -0
- data/lib/install/binstubs.rb +4 -0
- data/lib/install/config/webpack/webpack.config.js +5 -0
- data/lib/install/config/webpacker.yml +64 -0
- data/lib/install/package.json +15 -0
- data/lib/install/template.rb +100 -0
- data/lib/shakapacker/utils/git_utils.rb +23 -0
- data/lib/shakapacker/utils/version_syntax_converter.rb +24 -0
- data/lib/tasks/webpacker/binstubs.rake +15 -0
- data/lib/tasks/webpacker/check_binstubs.rake +12 -0
- data/lib/tasks/webpacker/check_node.rake +31 -0
- data/lib/tasks/webpacker/check_yarn.rake +33 -0
- data/lib/tasks/webpacker/clean.rake +25 -0
- data/lib/tasks/webpacker/clobber.rake +20 -0
- data/lib/tasks/webpacker/compile.rake +45 -0
- data/lib/tasks/webpacker/info.rake +21 -0
- data/lib/tasks/webpacker/install.rake +17 -0
- data/lib/tasks/webpacker/verify_config.rake +14 -0
- data/lib/tasks/webpacker/verify_install.rake +4 -0
- data/lib/tasks/webpacker/yarn_install.rake +18 -0
- data/lib/tasks/webpacker.rake +19 -0
- data/lib/tasks/yarn.rake +38 -0
- data/lib/webpacker/commands.rb +79 -0
- data/lib/webpacker/compiler.rb +130 -0
- data/lib/webpacker/configuration.rb +111 -0
- data/lib/webpacker/dev_server.rb +72 -0
- data/lib/webpacker/dev_server_proxy.rb +33 -0
- data/lib/webpacker/dev_server_runner.rb +96 -0
- data/lib/webpacker/env.rb +43 -0
- data/lib/webpacker/helper.rb +161 -0
- data/lib/webpacker/instance.rb +41 -0
- data/lib/webpacker/manifest.rb +120 -0
- data/lib/webpacker/railtie.rb +63 -0
- data/lib/webpacker/runner.rb +23 -0
- data/lib/webpacker/version.rb +4 -0
- data/lib/webpacker/webpack_runner.rb +58 -0
- data/lib/webpacker.rb +46 -0
- data/package/__tests__/config.js +34 -0
- data/package/__tests__/dev_server.js +45 -0
- data/package/__tests__/development.js +35 -0
- data/package/__tests__/env.js +58 -0
- data/package/__tests__/index.js +9 -0
- data/package/__tests__/production.js +29 -0
- data/package/__tests__/staging.js +30 -0
- data/package/__tests__/test.js +25 -0
- data/package/babel/preset.js +41 -0
- data/package/config.js +32 -0
- data/package/configPath.js +3 -0
- data/package/dev_server.js +20 -0
- data/package/env.js +27 -0
- data/package/environments/__tests__/base.js +69 -0
- data/package/environments/base.js +116 -0
- data/package/environments/development.js +55 -0
- data/package/environments/production.js +79 -0
- data/package/environments/test.js +3 -0
- data/package/index.js +33 -0
- data/package/inliningCss.js +7 -0
- data/package/rules/babel.js +30 -0
- data/package/rules/coffee.js +6 -0
- data/package/rules/css.js +3 -0
- data/package/rules/erb.js +15 -0
- data/package/rules/file.js +23 -0
- data/package/rules/index.js +18 -0
- data/package/rules/less.js +22 -0
- data/package/rules/raw.js +5 -0
- data/package/rules/sass.js +16 -0
- data/package/rules/stylus.js +26 -0
- data/package/utils/get_style_rule.js +37 -0
- data/package/utils/helpers.js +51 -0
- data/package.json +71 -0
- data/rakelib/release.rake +57 -0
- data/test/command_test.rb +109 -0
- data/test/compiler_test.rb +68 -0
- data/test/configuration_test.rb +78 -0
- data/test/dev_server_runner_test.rb +81 -0
- data/test/dev_server_test.rb +47 -0
- data/test/engine_rake_tasks_test.rb +39 -0
- data/test/env_test.rb +23 -0
- data/test/helper_test.rb +159 -0
- data/test/manifest_test.rb +89 -0
- data/test/mounted_app/Rakefile +4 -0
- data/test/mounted_app/test/dummy/Rakefile +3 -0
- data/test/mounted_app/test/dummy/bin/rails +3 -0
- data/test/mounted_app/test/dummy/bin/rake +3 -0
- data/test/mounted_app/test/dummy/config/application.rb +10 -0
- data/test/mounted_app/test/dummy/config/environment.rb +3 -0
- data/test/mounted_app/test/dummy/config/webpacker.yml +75 -0
- data/test/mounted_app/test/dummy/config.ru +5 -0
- data/test/mounted_app/test/dummy/package.json +7 -0
- data/test/rake_tasks_test.rb +71 -0
- data/test/test_app/Rakefile +3 -0
- data/test/test_app/app/packs/entrypoints/application.js +10 -0
- data/test/test_app/app/packs/entrypoints/multi_entry.css +4 -0
- data/test/test_app/app/packs/entrypoints/multi_entry.js +4 -0
- data/test/test_app/bin/webpacker +14 -0
- data/test/test_app/bin/webpacker-dev-server +14 -0
- data/test/test_app/config/application.rb +11 -0
- data/test/test_app/config/environment.rb +4 -0
- data/test/test_app/config/initializers/inspect_autoload_paths.rb +1 -0
- data/test/test_app/config/webpack/webpack.config.js +0 -0
- data/test/test_app/config/webpacker.yml +77 -0
- data/test/test_app/config/webpacker_other_location.yml +79 -0
- data/test/test_app/config/webpacker_public_root.yml +18 -0
- data/test/test_app/config.ru +5 -0
- data/test/test_app/package.json +13 -0
- data/test/test_app/public/packs/manifest.json +50 -0
- data/test/test_app/some.config.js +0 -0
- data/test/test_app/yarn.lock +11 -0
- data/test/test_helper.rb +33 -0
- data/test/webpack_runner_test.rb +57 -0
- data/test/webpacker_test.rb +34 -0
- data/webpacker.gemspec +31 -0
- data/yarn.lock +4029 -0
- metadata +331 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e3e0b9296c62375b6e7861a599485d262020e8b58ff601a75e136094e8278100
|
4
|
+
data.tar.gz: 14883fa657938740c400e202f02ddeb72d5fd45dd54bef8d44307ca34915af6e
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 18d3205c3f77361b2cde0c3e8dc2509cee255ba1a4145f0f689d9829366b84ffa6dee038e06b32df695a1754d0c893147fe151203b5d055452521795794110c1
|
7
|
+
data.tar.gz: 7e88035668059940af4a9edf2a4e4e76fc1d0c9f978ac689c64db9cf3ac8d4c7a50d065bbac293f45e944c75fd3907b5409d166cff592ddb36bb60815c4c9559
|
data/.eslintignore
ADDED
data/.eslintrc.js
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
module.exports = {
|
2
|
+
extends: ['airbnb', 'prettier'],
|
3
|
+
rules: {
|
4
|
+
'comma-dangle': ['error', 'never'],
|
5
|
+
'import/no-unresolved': 'off',
|
6
|
+
'import/no-extraneous-dependencies': 'off',
|
7
|
+
'import/extensions': 'off',
|
8
|
+
semi: ['error', 'never']
|
9
|
+
},
|
10
|
+
env: {
|
11
|
+
browser: true,
|
12
|
+
node: true
|
13
|
+
}
|
14
|
+
}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
---
|
2
|
+
name: Bug report
|
3
|
+
about: Create a report for a crash or unexpected behavior.
|
4
|
+
title: ''
|
5
|
+
labels: bug
|
6
|
+
assignees: ''
|
7
|
+
|
8
|
+
---
|
9
|
+
|
10
|
+
A bug is a crash or incorrect behavior. If you have a debugging or troubleshooting question, please open a discussion on the [Rails forum, category webpacker](https://discuss.rubyonrails.org/c/webpacker/10)
|
11
|
+
|
12
|
+
Ruby version:
|
13
|
+
Rails version:
|
14
|
+
Webpacker version:
|
15
|
+
|
16
|
+
Expected behavior:
|
17
|
+
|
18
|
+
Actual behavior:
|
19
|
+
|
20
|
+
Small, reproducible repo:
|
@@ -0,0 +1,18 @@
|
|
1
|
+
---
|
2
|
+
name: Feature request
|
3
|
+
about: Create a request for new functionality
|
4
|
+
title: ''
|
5
|
+
labels: enhancement
|
6
|
+
assignees: ''
|
7
|
+
|
8
|
+
---
|
9
|
+
|
10
|
+
A feature request is describes a suggested improvement. If you have a debugging or troubleshooting question, please open a discussion on the [Rails forum, category webpacker](https://discuss.rubyonrails.org/c/webpacker/10)
|
11
|
+
|
12
|
+
Ruby version:
|
13
|
+
Rails version:
|
14
|
+
Webpacker version:
|
15
|
+
|
16
|
+
Desired behavior:
|
17
|
+
|
18
|
+
Actual behavior:
|
@@ -0,0 +1,30 @@
|
|
1
|
+
name: Jest specs
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
jest:
|
7
|
+
name: Jest specs
|
8
|
+
strategy:
|
9
|
+
matrix:
|
10
|
+
os: [ubuntu-latest]
|
11
|
+
node: [12.x, 14.x, 16.x]
|
12
|
+
|
13
|
+
runs-on: ${{ matrix.os }}
|
14
|
+
|
15
|
+
steps:
|
16
|
+
- uses: actions/checkout@v2
|
17
|
+
- name: Use Node.js ${{ matrix.node }}
|
18
|
+
uses: actions/setup-node@v2
|
19
|
+
with:
|
20
|
+
node-version: ${{ matrix.node }}
|
21
|
+
cache: yarn
|
22
|
+
|
23
|
+
- name: Install yarn maybe
|
24
|
+
run: which yarn || npm install -g yarn
|
25
|
+
|
26
|
+
- name: Install dependencies
|
27
|
+
run: yarn --frozen-lockfile
|
28
|
+
|
29
|
+
- name: Jest Specs
|
30
|
+
run: yarn test
|
@@ -0,0 +1,31 @@
|
|
1
|
+
name: JS lint
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
js-lint:
|
7
|
+
name: JS Lint
|
8
|
+
|
9
|
+
strategy:
|
10
|
+
matrix:
|
11
|
+
os: [ubuntu-latest]
|
12
|
+
node: [14]
|
13
|
+
|
14
|
+
runs-on: ${{ matrix.os }}
|
15
|
+
|
16
|
+
steps:
|
17
|
+
- uses: actions/checkout@v2
|
18
|
+
- name: Use Node.js ${{ matrix.node }}
|
19
|
+
uses: actions/setup-node@v2
|
20
|
+
with:
|
21
|
+
node-version: ${{ matrix.node }}
|
22
|
+
cache: yarn
|
23
|
+
|
24
|
+
- name: Install yarn maybe
|
25
|
+
run: which yarn || npm install -g yarn
|
26
|
+
|
27
|
+
- name: Install dependencies
|
28
|
+
run: yarn --frozen-lockfile
|
29
|
+
|
30
|
+
- name: Lint
|
31
|
+
run: yarn lint
|
@@ -0,0 +1,39 @@
|
|
1
|
+
name: Rubocop
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
rubocop:
|
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,48 @@
|
|
1
|
+
name: Ruby specs
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
test:
|
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.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
|
21
|
+
exclude:
|
22
|
+
- ruby: 2.5
|
23
|
+
gemfile: gemfiles/Gemfile-rails.6.1.x
|
24
|
+
- ruby: "3.0"
|
25
|
+
gemfile: gemfiles/Gemfile-rails.5.2.x
|
26
|
+
experimental: [false]
|
27
|
+
include:
|
28
|
+
- ruby: 2.7
|
29
|
+
os: ubuntu-latest
|
30
|
+
gemfile: gemfiles/Gemfile-rails-edge
|
31
|
+
experimental: true
|
32
|
+
- ruby: "3.0"
|
33
|
+
os: ubuntu-latest
|
34
|
+
gemfile: gemfiles/Gemfile-rails-edge
|
35
|
+
experimental: true
|
36
|
+
|
37
|
+
env:
|
38
|
+
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
|
39
|
+
steps:
|
40
|
+
- uses: actions/checkout@v2
|
41
|
+
|
42
|
+
- uses: ruby/setup-ruby@v1
|
43
|
+
with:
|
44
|
+
ruby-version: ${{ matrix.ruby }}
|
45
|
+
bundler-cache: true # Run "bundle install", and cache the result automatically.
|
46
|
+
|
47
|
+
- name: Ruby specs
|
48
|
+
run: bundle exec rake
|
data/.gitignore
ADDED
data/.node-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
16.7.0
|
data/.rubocop.yml
ADDED
@@ -0,0 +1,229 @@
|
|
1
|
+
require: rubocop-performance
|
2
|
+
AllCops:
|
3
|
+
TargetRubyVersion: 2.7
|
4
|
+
# RuboCop has a bunch of cops enabled by default. This setting tells RuboCop
|
5
|
+
# to ignore them, so only the ones explicitly set in this file are enabled.
|
6
|
+
DisabledByDefault: true
|
7
|
+
Exclude:
|
8
|
+
- "lib/install/templates/**"
|
9
|
+
- "vendor/**/*"
|
10
|
+
- "node_modules/**/*"
|
11
|
+
- "_actions/**/*"
|
12
|
+
|
13
|
+
# Prefer &&/|| over and/or.
|
14
|
+
Style/AndOr:
|
15
|
+
Enabled: true
|
16
|
+
|
17
|
+
# Align `when` with `case`.
|
18
|
+
Layout/CaseIndentation:
|
19
|
+
Enabled: true
|
20
|
+
|
21
|
+
# Align comments with method definitions.
|
22
|
+
Layout/CommentIndentation:
|
23
|
+
Enabled: true
|
24
|
+
|
25
|
+
# No extra empty lines.
|
26
|
+
Layout/EmptyLines:
|
27
|
+
Enabled: true
|
28
|
+
|
29
|
+
# In a regular class definition, no empty lines around the body.
|
30
|
+
Layout/EmptyLinesAroundClassBody:
|
31
|
+
Enabled: true
|
32
|
+
|
33
|
+
# In a regular method definition, no empty lines around the body.
|
34
|
+
Layout/EmptyLinesAroundMethodBody:
|
35
|
+
Enabled: true
|
36
|
+
|
37
|
+
# In a regular module definition, no empty lines around the body.
|
38
|
+
Layout/EmptyLinesAroundModuleBody:
|
39
|
+
Enabled: true
|
40
|
+
|
41
|
+
# Use Ruby >= 1.9 syntax for hashes. Prefer { a: :b } over { :a => :b }.
|
42
|
+
Style/HashSyntax:
|
43
|
+
Enabled: true
|
44
|
+
|
45
|
+
# Method definitions after `private` or `protected` isolated calls need one
|
46
|
+
# extra level of indentation.
|
47
|
+
Layout/IndentationConsistency:
|
48
|
+
Enabled: true
|
49
|
+
EnforcedStyle: indented_internal_methods
|
50
|
+
|
51
|
+
# Detect hard tabs, no hard tabs.
|
52
|
+
Layout/IndentationStyle:
|
53
|
+
Enabled: true
|
54
|
+
|
55
|
+
# Two spaces, no tabs (for indentation).
|
56
|
+
Layout/IndentationWidth:
|
57
|
+
Enabled: true
|
58
|
+
|
59
|
+
Layout/SpaceAfterColon:
|
60
|
+
Enabled: true
|
61
|
+
|
62
|
+
Layout/SpaceAfterComma:
|
63
|
+
Enabled: true
|
64
|
+
|
65
|
+
Layout/SpaceAroundEqualsInParameterDefault:
|
66
|
+
Enabled: true
|
67
|
+
|
68
|
+
Layout/SpaceAroundKeyword:
|
69
|
+
Enabled: true
|
70
|
+
|
71
|
+
Layout/SpaceAroundOperators:
|
72
|
+
Enabled: true
|
73
|
+
|
74
|
+
Layout/SpaceBeforeFirstArg:
|
75
|
+
Enabled: true
|
76
|
+
|
77
|
+
# Defining a method with parameters needs parentheses.
|
78
|
+
Style/MethodDefParentheses:
|
79
|
+
Enabled: true
|
80
|
+
|
81
|
+
# Use `foo {}` not `foo{}`.
|
82
|
+
Layout/SpaceBeforeBlockBraces:
|
83
|
+
Enabled: true
|
84
|
+
|
85
|
+
# Use `foo { bar }` not `foo {bar}`.
|
86
|
+
Layout/SpaceInsideBlockBraces:
|
87
|
+
Enabled: true
|
88
|
+
|
89
|
+
# Use `{ a: 1 }` not `{a:1}`.
|
90
|
+
Layout/SpaceInsideHashLiteralBraces:
|
91
|
+
Enabled: true
|
92
|
+
|
93
|
+
Layout/SpaceInsideParens:
|
94
|
+
Enabled: true
|
95
|
+
|
96
|
+
# Check quotes usage according to lint rule below.
|
97
|
+
Style/StringLiterals:
|
98
|
+
Enabled: true
|
99
|
+
EnforcedStyle: double_quotes
|
100
|
+
|
101
|
+
# Blank lines should not have any spaces.
|
102
|
+
Layout/TrailingEmptyLines:
|
103
|
+
Enabled: true
|
104
|
+
|
105
|
+
# No trailing whitespace.
|
106
|
+
Layout/TrailingWhitespace:
|
107
|
+
Enabled: true
|
108
|
+
|
109
|
+
# Use quotes for string literals when they are enough.
|
110
|
+
Style/RedundantPercentQ:
|
111
|
+
Enabled: true
|
112
|
+
|
113
|
+
Lint/DeprecatedClassMethods:
|
114
|
+
Enabled: true
|
115
|
+
|
116
|
+
# Align `end` with the matching keyword or starting expression except for
|
117
|
+
# assignments, where it should be aligned with the LHS.
|
118
|
+
Layout/EndAlignment:
|
119
|
+
Enabled: true
|
120
|
+
EnforcedStyleAlignWith: variable
|
121
|
+
|
122
|
+
# Use my_method(my_arg) not my_method( my_arg ) or my_method my_arg.
|
123
|
+
Lint/RequireParentheses:
|
124
|
+
Enabled: true
|
125
|
+
|
126
|
+
# Use `bind_call(obj, args, ...)` instead of `bind(obj).call(args, ...)`.
|
127
|
+
Performance/BindCall:
|
128
|
+
Enabled: true
|
129
|
+
|
130
|
+
# Use `caller(n..n)` instead of `caller`.
|
131
|
+
Performance/Caller:
|
132
|
+
Enabled: true
|
133
|
+
|
134
|
+
# Use `casecmp` for case comparison.
|
135
|
+
Performance/Casecmp:
|
136
|
+
Enabled: true
|
137
|
+
|
138
|
+
# Extract Array and Hash literals outside of loops into local variables or constants.
|
139
|
+
Performance/CollectionLiteralInLoop:
|
140
|
+
Enabled: true
|
141
|
+
|
142
|
+
# Prefer `sort_by(&:foo)` instead of `sort { |a, b| a.foo <=> b.foo }`.
|
143
|
+
Performance/CompareWithBlock:
|
144
|
+
Enabled: true
|
145
|
+
|
146
|
+
# Use `count` instead of `{select,find_all,filter,reject}...{size,count,length}`.
|
147
|
+
Performance/Count:
|
148
|
+
Enabled: true
|
149
|
+
|
150
|
+
# Use `delete_prefix` instead of `gsub`.
|
151
|
+
Performance/DeletePrefix:
|
152
|
+
Enabled: true
|
153
|
+
|
154
|
+
# Use `delete_suffix` instead of `gsub`.
|
155
|
+
Performance/DeleteSuffix:
|
156
|
+
Enabled: true
|
157
|
+
|
158
|
+
# Use `detect` instead of `select.first`, `find_all.first`, `filter.first`, `select.last`, `find_all.last`, and `filter.last`.
|
159
|
+
Performance/Detect:
|
160
|
+
Enabled: true
|
161
|
+
|
162
|
+
# Use `str.{start,end}_with?(x, ..., y, ...)` instead of `str.{start,end}_with?(x, ...) || str.{start,end}_with?(y, ...)`.
|
163
|
+
Performance/DoubleStartEndWith:
|
164
|
+
Enabled: true
|
165
|
+
|
166
|
+
# Use `end_with?` instead of a regex match anchored to the end of a string.
|
167
|
+
Performance/EndWith:
|
168
|
+
Enabled: true
|
169
|
+
|
170
|
+
# Do not compute the size of statically sized objects except in constants.
|
171
|
+
Performance/FixedSize:
|
172
|
+
Enabled: true
|
173
|
+
|
174
|
+
# Use `Enumerable#flat_map` instead of `Enumerable#map...Array#flatten(1).
|
175
|
+
Performance/FlatMap:
|
176
|
+
Enabled: true
|
177
|
+
|
178
|
+
# Use `key?` or `value?` instead of `keys.include?` or `values.include?`.
|
179
|
+
Performance/InefficientHashSearch:
|
180
|
+
Enabled: true
|
181
|
+
|
182
|
+
# Use `Range#cover?` instead of `Range#include?` (or `Range#member?`).
|
183
|
+
Performance/RangeInclude:
|
184
|
+
Enabled: true
|
185
|
+
|
186
|
+
# Use `yield` instead of `block.call`.
|
187
|
+
Performance/RedundantBlockCall:
|
188
|
+
Enabled: true
|
189
|
+
|
190
|
+
# Use `=~` instead of `String#match` or `Regexp#match` in a context where the returned `MatchData` is not needed.
|
191
|
+
Performance/RedundantMatch:
|
192
|
+
Enabled: true
|
193
|
+
|
194
|
+
# Use Hash#[]=, rather than Hash#merge! with a single key-value pair.
|
195
|
+
Performance/RedundantMerge:
|
196
|
+
Enabled: true
|
197
|
+
|
198
|
+
# Use `match?` instead of `Regexp#match`, `String#match`, `Symbol#match`, `Regexp#===`, or `=~` when `MatchData` is not used.
|
199
|
+
Performance/RegexpMatch:
|
200
|
+
Enabled: true
|
201
|
+
|
202
|
+
# Use `reverse_each` instead of `reverse.each`.
|
203
|
+
Performance/ReverseEach:
|
204
|
+
Enabled: true
|
205
|
+
|
206
|
+
# Use `size` instead of `count` for counting the number of elements in `Array` and `Hash`.
|
207
|
+
Performance/Size:
|
208
|
+
Enabled: true
|
209
|
+
|
210
|
+
# Use `start_with?` instead of a regex match anchored to the beginning of a string.
|
211
|
+
Performance/StartWith:
|
212
|
+
Enabled: true
|
213
|
+
|
214
|
+
# Use `tr` instead of `gsub` when you are replacing the same number of characters.
|
215
|
+
# Use `delete` instead of `gsub` when you are deleting characters.
|
216
|
+
Performance/StringReplacement:
|
217
|
+
Enabled: true
|
218
|
+
|
219
|
+
# Checks for .times.map calls.
|
220
|
+
Performance/TimesMap:
|
221
|
+
Enabled: true
|
222
|
+
|
223
|
+
# Use unary plus to get an unfrozen string literal.
|
224
|
+
Performance/UnfreezeString:
|
225
|
+
Enabled: true
|
226
|
+
|
227
|
+
# Use `URI::DEFAULT_PARSER` instead of `URI::Parser.new`.
|
228
|
+
Performance/UriDefaultParser:
|
229
|
+
Enabled: true
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
For versions prior to v6, see the [5.x stable branch of rails/webpacker](https://github.com/rails/webpacker/tree/5-x-stable).
|
2
|
+
|
3
|
+
## [[6.0.0]](https://github.com/rails/webpacker/compare/v5.4.3...master) - 2022
|
4
|
+
|
5
|
+
Latest is rc.9.
|
6
|
+
|
7
|
+
Please see [UPGRADE GUIDE](./docs/v6_upgrade.md) for more information.
|
8
|
+
- Single default configuration file of `config/webpack/webpack.config.js`. Previously, the config file was set
|
9
|
+
to `config/webpack/#{NODE_ENV}.js`.
|
10
|
+
|
11
|
+
- `node_modules` will no longer be babel transfomed compiled by default. This primarily fixes [rails issue #35501](https://github.com/rails/rails/issues/35501) as well as [numerous other webpacker issues](https://github.com/rails/webpacker/issues/2131#issuecomment-581618497). The disabled loader can still be required explicitly via:
|
12
|
+
|
13
|
+
```js
|
14
|
+
const nodeModules = require('@rails/webpacker/rules/node_modules.js')
|
15
|
+
environment.loaders.append('nodeModules', nodeModules)
|
16
|
+
```
|
17
|
+
|
18
|
+
- If you have added `environment.loaders.delete('nodeModules')` to your `environment.js`, this must be removed or you will receive an error (`Item nodeModules not found`).
|
19
|
+
- `extract_css` option was removed. Webpacker will generate a separate `application.css` file for the default `application` pack, as supported by multiple files per entry introduced in 5.0.0. [#2608](https://github.com/rails/webpacker/pull/2608). However, CSS will be inlined when the webpack-dev-server is used with `hmr: true`. JS package exports `inliningCss`. This is useful to enable HMR for React.
|
20
|
+
- Webpacker's wrapper to the `splitChunks()` API will now default `runtimeChunk: 'single'` which will help prevent potential issues when using multiple entry points per page [#2708](https://github.com/rails/webpacker/pull/2708).
|
21
|
+
- Changes `@babel/preset-env` modules option to `'auto'` per recommendation in the Babel docs [#2709](https://github.com/rails/webpacker/pull/2709)
|
22
|
+
- Adds experimental Yarn 2 support. Note you must manually set `nodeLinker: node-modules` in your `.yarnrc.yml`.
|
23
|
+
- Fixes dev server issues [#2898](https://github.com/rails/webpacker/pull/2898)
|
24
|
+
- Update static files path to from `media/` to `static/`.
|
25
|
+
- Changed all package.json dependencies to peerDependencies, so upgrading requires adding the dependencies, per the [UPGRADE GUIDE](./docs/v6_upgrade.md).
|
26
|
+
- Deprecated configuration option `watched_paths`. Use `additional_paths` instead in `webpacker.yml`.
|
27
|
+
|
28
|
+
### Breaking changes
|
29
|
+
- Renamed `/bin/webpack` to `/bin/webpacker` and `/bin/webpack-dev-server` to `bin/webpacker-dev-server` to avoid confusion with underlying webpack executables.
|
30
|
+
- Removed integration installers
|
31
|
+
- Splitchunks enabled by default
|
32
|
+
- CSS extraction enabled by default, except when devServer is configured and running
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
## Setting Up a Development Environment
|
2
|
+
|
3
|
+
1. Install [Yarn](https://yarnpkg.com/)
|
4
|
+
|
5
|
+
2. Run the following commands to set up the development environment.
|
6
|
+
|
7
|
+
```
|
8
|
+
bundle install
|
9
|
+
yarn
|
10
|
+
```
|
11
|
+
|
12
|
+
## Making sure your changes pass all tests
|
13
|
+
|
14
|
+
There are a number of automated checks which run on GitHub Actions when a pull request is created.
|
15
|
+
|
16
|
+
You can run those checks on your own locally to make sure that your changes would not break the CI build.
|
17
|
+
|
18
|
+
### 1. Check the code for JavaScript style violations
|
19
|
+
|
20
|
+
```
|
21
|
+
yarn lint
|
22
|
+
```
|
23
|
+
|
24
|
+
### 2. Check the code for Ruby style violations
|
25
|
+
|
26
|
+
```
|
27
|
+
bundle exec rubocop
|
28
|
+
```
|
29
|
+
|
30
|
+
### 3. Run the JavaScript test suite
|
31
|
+
|
32
|
+
```
|
33
|
+
yarn test
|
34
|
+
```
|
35
|
+
|
36
|
+
### 4. Run the Ruby test suite
|
37
|
+
|
38
|
+
```
|
39
|
+
bundle exec rake test
|
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
|
+
bundle exec ruby -I test test/rake_tasks_test.rb -n test_rake_webpacker_install
|
52
|
+
```
|
53
|
+
|
54
|
+
# Testing the generator
|
55
|
+
If you change the generator, check that install instructions work.
|
56
|
+
|
57
|
+
1. Update the gemfile so that gem "webpacker" has a line like this, pointing to your install of webpacker
|
58
|
+
```ruby
|
59
|
+
gem 'webpacker', path: "~/shakacode/forks/webpacker"
|
60
|
+
```
|
61
|
+
2. `bundle`
|
62
|
+
3. Run the generator confirm that you got the right changes.
|