webpacker 5.4.4 → 6.0.0.beta
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 +4 -4
- data/.eslintrc.js +1 -1
- data/.github/workflows/ruby.yml +28 -4
- data/.gitignore +2 -0
- data/.node-version +1 -1
- data/.rubocop.yml +3 -111
- data/6_0_upgrade.md +43 -0
- data/CHANGELOG.md +19 -26
- data/Gemfile.lock +91 -94
- data/README.md +215 -98
- data/gemfiles/Gemfile-rails-edge +1 -1
- data/lib/install/config/webpack/base.js +3 -0
- data/lib/install/config/webpack/development.js +2 -2
- data/lib/install/config/webpack/production.js +2 -2
- data/lib/install/config/webpack/test.js +2 -2
- data/lib/install/config/webpacker.yml +8 -37
- data/lib/install/javascript/packs/application.css +9 -0
- data/lib/install/javascript/packs/application.js +3 -1
- data/lib/install/template.rb +33 -27
- data/lib/tasks/webpacker/binstubs.rake +6 -4
- data/lib/tasks/webpacker/check_binstubs.rake +4 -4
- data/lib/tasks/webpacker/check_yarn.rake +1 -1
- data/lib/tasks/webpacker/compile.rake +4 -2
- data/lib/tasks/webpacker/info.rake +12 -10
- data/lib/tasks/webpacker/install.rake +6 -4
- data/lib/tasks/webpacker/verify_install.rake +2 -1
- data/lib/tasks/webpacker/yarn_install.rake +9 -7
- data/lib/tasks/webpacker.rake +2 -11
- data/lib/webpacker/compiler.rb +15 -8
- data/lib/webpacker/configuration.rb +10 -45
- data/lib/webpacker/dev_server_runner.rb +21 -2
- data/lib/webpacker/env.rb +1 -5
- data/lib/webpacker/helper.rb +22 -32
- data/lib/webpacker/manifest.rb +1 -1
- data/lib/webpacker/version.rb +1 -1
- data/lib/webpacker/webpack_runner.rb +5 -0
- data/package/__tests__/config.js +5 -37
- data/package/__tests__/development.js +9 -11
- data/package/__tests__/env.js +12 -4
- data/package/__tests__/production.js +6 -6
- data/package/__tests__/staging.js +7 -6
- data/package/__tests__/test.js +4 -5
- data/package/babel/preset.js +55 -0
- data/package/config.js +3 -11
- data/package/env.js +8 -2
- data/package/environments/__tests__/base.js +15 -47
- data/package/environments/base.js +62 -125
- data/package/environments/development.js +45 -44
- data/package/environments/production.js +63 -68
- data/package/environments/test.js +2 -2
- data/package/index.js +13 -8
- data/package/rules/babel.js +9 -7
- data/package/rules/coffee.js +6 -0
- data/package/rules/erb.js +15 -0
- data/package/rules/file.js +19 -19
- data/package/rules/index.js +15 -18
- data/package/rules/less.js +22 -0
- data/package/rules/sass.js +10 -10
- data/package/rules/svg.js +20 -0
- data/package/utils/get_style_rule.js +26 -36
- data/package/utils/helpers.js +26 -35
- data/package.json +29 -45
- data/test/compiler_test.rb +0 -12
- data/test/configuration_test.rb +1 -32
- data/test/dev_server_runner_test.rb +24 -5
- data/test/engine_rake_tasks_test.rb +39 -0
- data/test/helper_test.rb +24 -30
- 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 +1 -10
- data/test/test_app/config/webpacker.yml +1 -25
- data/test/test_app/config/webpacker_public_root.yml +0 -1
- data/test/test_app/public/packs/manifest.json +17 -13
- data/test/test_app/some.config.js +0 -0
- data/test/webpack_runner_test.rb +9 -3
- data/yarn.lock +2505 -4943
- metadata +37 -82
- data/docs/assets.md +0 -119
- data/docs/cloud9.md +0 -310
- data/docs/css.md +0 -308
- data/docs/deployment.md +0 -130
- data/docs/docker.md +0 -68
- data/docs/engines.md +0 -213
- data/docs/env.md +0 -63
- data/docs/es6.md +0 -72
- data/docs/folder-structure.md +0 -66
- data/docs/integrations.md +0 -220
- data/docs/misc.md +0 -23
- data/docs/props.md +0 -223
- data/docs/target.md +0 -22
- data/docs/testing.md +0 -136
- data/docs/troubleshooting.md +0 -158
- data/docs/typescript.md +0 -190
- data/docs/v4-upgrade.md +0 -142
- data/docs/webpack-dev-server.md +0 -92
- data/docs/webpack.md +0 -364
- data/docs/yarn.md +0 -23
- data/lib/install/angular.rb +0 -23
- data/lib/install/coffee.rb +0 -25
- data/lib/install/config/.browserslistrc +0 -1
- data/lib/install/config/babel.config.js +0 -82
- data/lib/install/config/postcss.config.js +0 -12
- data/lib/install/config/webpack/environment.js +0 -3
- data/lib/install/elm.rb +0 -39
- data/lib/install/erb.rb +0 -25
- data/lib/install/examples/angular/hello_angular/app/app.component.ts +0 -9
- data/lib/install/examples/angular/hello_angular/app/app.module.ts +0 -16
- data/lib/install/examples/angular/hello_angular/index.ts +0 -8
- data/lib/install/examples/angular/hello_angular/polyfills.ts +0 -73
- data/lib/install/examples/angular/hello_angular.js +0 -7
- data/lib/install/examples/coffee/hello_coffee.coffee +0 -4
- data/lib/install/examples/elm/Main.elm +0 -55
- data/lib/install/examples/elm/hello_elm.js +0 -16
- data/lib/install/examples/erb/hello_erb.js.erb +0 -6
- data/lib/install/examples/react/babel.config.js +0 -99
- data/lib/install/examples/react/hello_react.jsx +0 -26
- data/lib/install/examples/react/tsconfig.json +0 -21
- data/lib/install/examples/stimulus/application.js +0 -1
- data/lib/install/examples/stimulus/controllers/hello_controller.js +0 -18
- data/lib/install/examples/stimulus/controllers/index.js +0 -9
- data/lib/install/examples/svelte/app.svelte +0 -11
- data/lib/install/examples/svelte/hello_svelte.js +0 -20
- data/lib/install/examples/typescript/hello_typescript.ts +0 -4
- data/lib/install/examples/typescript/tsconfig.json +0 -24
- data/lib/install/examples/vue/app.vue +0 -22
- data/lib/install/examples/vue/hello_vue.js +0 -72
- data/lib/install/loaders/coffee.js +0 -6
- data/lib/install/loaders/elm.js +0 -25
- data/lib/install/loaders/erb.js +0 -11
- data/lib/install/loaders/svelte.js +0 -9
- data/lib/install/loaders/vue.js +0 -6
- data/lib/install/react.rb +0 -18
- data/lib/install/stimulus.rb +0 -12
- data/lib/install/svelte.rb +0 -29
- data/lib/install/typescript.rb +0 -39
- data/lib/install/vue.rb +0 -49
- data/lib/tasks/installers.rake +0 -42
- data/package/config_types/__tests__/config_list.js +0 -118
- data/package/config_types/__tests__/config_object.js +0 -43
- data/package/config_types/config_list.js +0 -75
- data/package/config_types/config_object.js +0 -55
- data/package/config_types/index.js +0 -7
- data/package/rules/module.css.js +0 -3
- data/package/rules/module.sass.js +0 -8
- data/package/rules/node_modules.js +0 -22
- data/package/utils/__tests__/deep_assign.js +0 -32
- data/package/utils/__tests__/deep_merge.js +0 -10
- data/package/utils/__tests__/get_style_rule.js +0 -65
- data/package/utils/__tests__/objectify.js +0 -9
- data/package/utils/deep_assign.js +0 -22
- data/package/utils/deep_merge.js +0 -22
- data/package/utils/objectify.js +0 -3
data/test/configuration_test.rb
CHANGED
|
@@ -14,11 +14,6 @@ class ConfigurationTest < Webpacker::Test
|
|
|
14
14
|
assert_equal source_path, @config.source_path.to_s
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
def test_source_path_globbed
|
|
18
|
-
assert_equal @config.source_path_globbed,
|
|
19
|
-
"app/javascript/**/*{.mjs,.js,.sass,.scss,.css,.module.sass,.module.scss,.module.css,.png,.svg,.gif,.jpeg,.jpg,.elm}"
|
|
20
|
-
end
|
|
21
|
-
|
|
22
17
|
def test_source_entry_path
|
|
23
18
|
source_entry_path = File.expand_path File.join(File.dirname(__FILE__), "test_app/app/javascript", "packs").to_s
|
|
24
19
|
assert_equal @config.source_entry_path.to_s, source_entry_path
|
|
@@ -54,21 +49,7 @@ class ConfigurationTest < Webpacker::Test
|
|
|
54
49
|
end
|
|
55
50
|
|
|
56
51
|
def test_additional_paths
|
|
57
|
-
assert_equal @config.additional_paths, ["app/assets", "/etc/yarn", "app/elm"]
|
|
58
|
-
end
|
|
59
|
-
|
|
60
|
-
def test_additional_paths_globbed
|
|
61
|
-
assert_equal @config.additional_paths_globbed, [
|
|
62
|
-
"app/assets/**/*{.mjs,.js,.sass,.scss,.css,.module.sass,.module.scss,.module.css,.png,.svg,.gif,.jpeg,.jpg,.elm}",
|
|
63
|
-
"/etc/yarn/**/*{.mjs,.js,.sass,.scss,.css,.module.sass,.module.scss,.module.css,.png,.svg,.gif,.jpeg,.jpg,.elm}",
|
|
64
|
-
"app/elm/**/*{.mjs,.js,.sass,.scss,.css,.module.sass,.module.scss,.module.css,.png,.svg,.gif,.jpeg,.jpg,.elm}"
|
|
65
|
-
]
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def test_extensions
|
|
69
|
-
config_path = File.expand_path File.join(File.dirname(__FILE__), "test_app/config/webpacker.yml").to_s
|
|
70
|
-
webpacker_yml = YAML.load_file(config_path)
|
|
71
|
-
assert_equal @config.extensions, webpacker_yml["default"]["extensions"]
|
|
52
|
+
assert_equal @config.additional_paths, ["app/assets", "/etc/yarn", "some.config.js", "app/elm"]
|
|
72
53
|
end
|
|
73
54
|
|
|
74
55
|
def test_cache_manifest?
|
|
@@ -94,16 +75,4 @@ class ConfigurationTest < Webpacker::Test
|
|
|
94
75
|
assert Webpacker.config.compile?
|
|
95
76
|
end
|
|
96
77
|
end
|
|
97
|
-
|
|
98
|
-
def test_extract_css?
|
|
99
|
-
assert @config.extract_css?
|
|
100
|
-
|
|
101
|
-
with_rails_env("development") do
|
|
102
|
-
refute Webpacker.config.extract_css?
|
|
103
|
-
end
|
|
104
|
-
|
|
105
|
-
with_rails_env("test") do
|
|
106
|
-
refute Webpacker.config.extract_css?
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
78
|
end
|
|
@@ -13,34 +13,53 @@ class DevServerRunnerTest < Webpacker::Test
|
|
|
13
13
|
end
|
|
14
14
|
|
|
15
15
|
def test_run_cmd_via_node_modules
|
|
16
|
-
cmd = ["#{test_app_path}/node_modules/.bin/webpack
|
|
16
|
+
cmd = ["#{test_app_path}/node_modules/.bin/webpack", "serve", "--config", "#{test_app_path}/config/webpack/development.js"]
|
|
17
17
|
|
|
18
18
|
verify_command(cmd, use_node_modules: true)
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
def test_run_cmd_via_yarn
|
|
22
|
-
cmd = ["yarn", "webpack
|
|
22
|
+
cmd = ["yarn", "webpack", "serve", "--config", "#{test_app_path}/config/webpack/development.js"]
|
|
23
23
|
|
|
24
24
|
verify_command(cmd, use_node_modules: false)
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
+
def test_run_cmd_argv
|
|
28
|
+
cmd = ["#{test_app_path}/node_modules/.bin/webpack", "serve", "--config", "#{test_app_path}/config/webpack/development.js", "--quiet"]
|
|
29
|
+
|
|
30
|
+
verify_command(cmd, argv: ["--quiet"])
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def test_run_cmd_argv_with_https
|
|
34
|
+
cmd = ["#{test_app_path}/node_modules/.bin/webpack", "serve", "--config", "#{test_app_path}/config/webpack/development.js", "--https"]
|
|
35
|
+
|
|
36
|
+
dev_server = Webpacker::DevServer.new({})
|
|
37
|
+
def dev_server.host; "localhost"; end
|
|
38
|
+
def dev_server.port; "3035"; end
|
|
39
|
+
def dev_server.pretty?; false; end
|
|
40
|
+
def dev_server.https?; true; end
|
|
41
|
+
Webpacker::DevServer.stub(:new, dev_server) do
|
|
42
|
+
verify_command(cmd, argv: ["--https"])
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
27
46
|
private
|
|
28
47
|
def test_app_path
|
|
29
48
|
File.expand_path("test_app", __dir__)
|
|
30
49
|
end
|
|
31
50
|
|
|
32
|
-
def verify_command(cmd, use_node_modules: true)
|
|
51
|
+
def verify_command(cmd, use_node_modules: true, argv: [])
|
|
33
52
|
cwd = Dir.pwd
|
|
34
53
|
Dir.chdir(test_app_path)
|
|
35
54
|
|
|
36
55
|
klass = Webpacker::DevServerRunner
|
|
37
|
-
instance = klass.new(
|
|
56
|
+
instance = klass.new(argv)
|
|
38
57
|
mock = Minitest::Mock.new
|
|
39
58
|
mock.expect(:call, nil, [Webpacker::Compiler.env, *cmd])
|
|
40
59
|
|
|
41
60
|
klass.stub(:new, instance) do
|
|
42
61
|
instance.stub(:node_modules_bin_exist?, use_node_modules) do
|
|
43
|
-
Kernel.stub(:exec, mock) { klass.run(
|
|
62
|
+
Kernel.stub(:exec, mock) { klass.run(argv) }
|
|
44
63
|
end
|
|
45
64
|
end
|
|
46
65
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
require "test_helper"
|
|
2
|
+
|
|
3
|
+
class EngineRakeTasksTest < Minitest::Test
|
|
4
|
+
def setup
|
|
5
|
+
remove_webpack_binstubs
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def teardown
|
|
9
|
+
remove_webpack_binstubs
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def test_task_mounted
|
|
13
|
+
output = Dir.chdir(mounted_app_path) { `rake -T` }
|
|
14
|
+
assert_includes output, "app:webpacker"
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def test_binstubs
|
|
18
|
+
Dir.chdir(mounted_app_path) { `bundle exec rake app:webpacker:binstubs` }
|
|
19
|
+
webpack_binstub_paths.each { |path| assert File.exist?(path) }
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
private
|
|
23
|
+
def mounted_app_path
|
|
24
|
+
File.expand_path("mounted_app", __dir__)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def webpack_binstub_paths
|
|
28
|
+
[
|
|
29
|
+
"#{mounted_app_path}/test/dummy/bin/webpack",
|
|
30
|
+
"#{mounted_app_path}/test/dummy/bin/webpack-dev-server",
|
|
31
|
+
]
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def remove_webpack_binstubs
|
|
35
|
+
webpack_binstub_paths.each do |path|
|
|
36
|
+
File.delete(path) if File.exist?(path)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
data/test/helper_test.rb
CHANGED
|
@@ -17,21 +17,27 @@ class HelperTest < ActionView::TestCase
|
|
|
17
17
|
def test_asset_pack_path
|
|
18
18
|
assert_equal "/packs/bootstrap-300631c4f0e0f9c865bc.js", asset_pack_path("bootstrap.js")
|
|
19
19
|
assert_equal "/packs/bootstrap-c38deda30895059837cf.css", asset_pack_path("bootstrap.css")
|
|
20
|
-
|
|
21
|
-
Webpacker.config.stub :extract_css?, false do
|
|
22
|
-
assert_nil asset_pack_path("bootstrap.css")
|
|
23
|
-
assert_equal "/packs/application-k344a6d59eef8632c9d1.png", asset_pack_path("application.png")
|
|
24
|
-
end
|
|
25
20
|
end
|
|
26
21
|
|
|
27
22
|
def test_asset_pack_url
|
|
28
23
|
assert_equal "https://example.com/packs/bootstrap-300631c4f0e0f9c865bc.js", asset_pack_url("bootstrap.js")
|
|
29
24
|
assert_equal "https://example.com/packs/bootstrap-c38deda30895059837cf.css", asset_pack_url("bootstrap.css")
|
|
25
|
+
end
|
|
30
26
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
27
|
+
def test_image_pack_path
|
|
28
|
+
assert_equal "/packs/application-k344a6d59eef8632c9d1.png", image_pack_path("application.png")
|
|
29
|
+
assert_equal "/packs/media/images/image-c38deda30895059837cf.jpg", image_pack_path("image.jpg")
|
|
30
|
+
assert_equal "/packs/media/images/image-c38deda30895059837cf.jpg", image_pack_path("media/images/image.jpg")
|
|
31
|
+
assert_equal "/packs/media/images/nested/image-c38deda30895059837cf.jpg", image_pack_path("nested/image.jpg")
|
|
32
|
+
assert_equal "/packs/media/images/nested/image-c38deda30895059837cf.jpg", image_pack_path("media/images/nested/image.jpg")
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
def test_image_pack_url
|
|
36
|
+
assert_equal "https://example.com/packs/application-k344a6d59eef8632c9d1.png", image_pack_url("application.png")
|
|
37
|
+
assert_equal "https://example.com/packs/media/images/image-c38deda30895059837cf.jpg", image_pack_url("image.jpg")
|
|
38
|
+
assert_equal "https://example.com/packs/media/images/image-c38deda30895059837cf.jpg", image_pack_url("media/images/image.jpg")
|
|
39
|
+
assert_equal "https://example.com/packs/media/images/nested/image-c38deda30895059837cf.jpg", image_pack_url("nested/image.jpg")
|
|
40
|
+
assert_equal "https://example.com/packs/media/images/nested/image-c38deda30895059837cf.jpg", image_pack_url("media/images/nested/image.jpg")
|
|
35
41
|
end
|
|
36
42
|
|
|
37
43
|
def test_image_pack_tag
|
|
@@ -117,41 +123,29 @@ class HelperTest < ActionView::TestCase
|
|
|
117
123
|
end
|
|
118
124
|
|
|
119
125
|
def test_stylesheet_pack_tag_split_chunks
|
|
120
|
-
assert_equal
|
|
121
|
-
|
|
122
|
-
%(<link rel="stylesheet" href="/packs/application-k344a6d59eef8632c9d1.chunk.css" media="screen" />\n) +
|
|
123
|
-
%(<link rel="stylesheet" href="/packs/hello_stimulus-k344a6d59eef8632c9d1.chunk.css" media="screen" />),
|
|
124
|
-
|
|
125
|
-
%(<link rel="stylesheet" media="screen" href="/packs/1-c20632e7baf2c81200d3.chunk.css" />\n) +
|
|
126
|
+
assert_equal \
|
|
127
|
+
%(<link rel="stylesheet" media="screen" href="/packs/1-c20632e7baf2c81200d3.chunk.css" />\n) +
|
|
126
128
|
%(<link rel="stylesheet" media="screen" href="/packs/application-k344a6d59eef8632c9d1.chunk.css" />\n) +
|
|
127
129
|
%(<link rel="stylesheet" media="screen" href="/packs/hello_stimulus-k344a6d59eef8632c9d1.chunk.css" />),
|
|
128
|
-
|
|
129
|
-
true
|
|
130
|
+
stylesheet_packs_with_chunks_tag("application", "hello_stimulus")
|
|
130
131
|
end
|
|
131
132
|
|
|
132
133
|
def test_stylesheet_pack_tag
|
|
133
|
-
assert_equal
|
|
134
|
-
%(<link rel="stylesheet" href="/packs/bootstrap-c38deda30895059837cf.css" media="screen" />),
|
|
135
|
-
|
|
134
|
+
assert_equal \
|
|
136
135
|
%(<link rel="stylesheet" media="screen" href="/packs/bootstrap-c38deda30895059837cf.css" />),
|
|
137
|
-
|
|
136
|
+
stylesheet_pack_tag("bootstrap.css")
|
|
138
137
|
end
|
|
139
138
|
|
|
140
139
|
def test_stylesheet_pack_tag_symbol
|
|
141
|
-
assert_equal
|
|
142
|
-
%(<link rel="stylesheet" href="/packs/bootstrap-c38deda30895059837cf.css" media="screen" />),
|
|
143
|
-
|
|
140
|
+
assert_equal \
|
|
144
141
|
%(<link rel="stylesheet" media="screen" href="/packs/bootstrap-c38deda30895059837cf.css" />),
|
|
145
|
-
|
|
142
|
+
stylesheet_pack_tag(:bootstrap)
|
|
146
143
|
end
|
|
147
144
|
|
|
148
145
|
def test_stylesheet_pack_tag_splat
|
|
149
|
-
assert_equal
|
|
150
|
-
%(<link rel="stylesheet" href="/packs/bootstrap-c38deda30895059837cf.css" media="all" />\n) +
|
|
151
|
-
%(<link rel="stylesheet" href="/packs/application-dd6b1cd38bfa093df600.css" media="all" />),
|
|
152
|
-
|
|
146
|
+
assert_equal \
|
|
153
147
|
%(<link rel="stylesheet" media="all" href="/packs/bootstrap-c38deda30895059837cf.css" />\n) +
|
|
154
148
|
%(<link rel="stylesheet" media="all" href="/packs/application-dd6b1cd38bfa093df600.css" />),
|
|
155
|
-
|
|
149
|
+
stylesheet_pack_tag("bootstrap.css", "application.css", media: "all")
|
|
156
150
|
end
|
|
157
151
|
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Note: You must restart bin/webpack-dev-server for changes to take effect
|
|
2
|
+
|
|
3
|
+
default: &default
|
|
4
|
+
source_path: app/javascript
|
|
5
|
+
source_entry_path: packs
|
|
6
|
+
public_output_path: packs
|
|
7
|
+
cache_path: tmp/cache/webpacker
|
|
8
|
+
|
|
9
|
+
# Additional paths webpack should lookup modules
|
|
10
|
+
# ['app/assets', 'engine/foo/app/assets']
|
|
11
|
+
additional_paths:
|
|
12
|
+
- app/assets
|
|
13
|
+
- /etc/yarn
|
|
14
|
+
|
|
15
|
+
# Reload manifest.json on all requests so we reload latest compiled packs
|
|
16
|
+
cache_manifest: false
|
|
17
|
+
|
|
18
|
+
extensions:
|
|
19
|
+
- .js
|
|
20
|
+
- .sass
|
|
21
|
+
- .scss
|
|
22
|
+
- .css
|
|
23
|
+
- .module.sass
|
|
24
|
+
- .module.scss
|
|
25
|
+
- .module.css
|
|
26
|
+
- .png
|
|
27
|
+
- .svg
|
|
28
|
+
- .gif
|
|
29
|
+
- .jpeg
|
|
30
|
+
- .jpg
|
|
31
|
+
|
|
32
|
+
development:
|
|
33
|
+
<<: *default
|
|
34
|
+
compile: true
|
|
35
|
+
|
|
36
|
+
# Reference: https://webpack.js.org/configuration/dev-server/
|
|
37
|
+
dev_server:
|
|
38
|
+
https: false
|
|
39
|
+
host: localhost
|
|
40
|
+
port: 3035
|
|
41
|
+
public: localhost:3035
|
|
42
|
+
hmr: false
|
|
43
|
+
# Inline should be set to true if using HMR
|
|
44
|
+
inline: true
|
|
45
|
+
overlay: true
|
|
46
|
+
disable_host_check: true
|
|
47
|
+
use_local_ip: false
|
|
48
|
+
|
|
49
|
+
test:
|
|
50
|
+
<<: *default
|
|
51
|
+
compile: true
|
|
52
|
+
|
|
53
|
+
# Compile test packs to a separate directory
|
|
54
|
+
public_output_path: packs-test
|
|
55
|
+
|
|
56
|
+
production:
|
|
57
|
+
<<: *default
|
|
58
|
+
|
|
59
|
+
# Production depends on precompilation of packs prior to booting for performance.
|
|
60
|
+
compile: false
|
|
61
|
+
|
|
62
|
+
# Cache manifest.json for performance
|
|
63
|
+
cache_manifest: true
|
|
64
|
+
|
|
65
|
+
staging:
|
|
66
|
+
<<: *default
|
|
67
|
+
|
|
68
|
+
# Production depends on precompilation of packs prior to booting for performance.
|
|
69
|
+
compile: false
|
|
70
|
+
|
|
71
|
+
# Cache manifest.json for performance
|
|
72
|
+
cache_manifest: true
|
|
73
|
+
|
|
74
|
+
# Compile staging packs to a separate directory
|
|
75
|
+
public_output_path: packs-staging
|
data/test/rake_tasks_test.rb
CHANGED
|
@@ -11,21 +11,12 @@ class RakeTasksTest < Minitest::Test
|
|
|
11
11
|
assert_includes output, "webpacker:clobber"
|
|
12
12
|
assert_includes output, "webpacker:compile"
|
|
13
13
|
assert_includes output, "webpacker:install"
|
|
14
|
-
assert_includes output, "webpacker:install:angular"
|
|
15
|
-
assert_includes output, "webpacker:install:coffee"
|
|
16
|
-
assert_includes output, "webpacker:install:elm"
|
|
17
|
-
assert_includes output, "webpacker:install:erb"
|
|
18
|
-
assert_includes output, "webpacker:install:react"
|
|
19
|
-
assert_includes output, "webpacker:install:svelte"
|
|
20
|
-
assert_includes output, "webpacker:install:stimulus"
|
|
21
|
-
assert_includes output, "webpacker:install:typescript"
|
|
22
|
-
assert_includes output, "webpacker:install:vue"
|
|
23
14
|
assert_includes output, "webpacker:verify_install"
|
|
24
15
|
end
|
|
25
16
|
|
|
26
17
|
def test_rake_task_webpacker_check_binstubs
|
|
27
18
|
output = Dir.chdir(test_app_path) { `rake webpacker:check_binstubs 2>&1` }
|
|
28
|
-
refute_includes output, "webpack
|
|
19
|
+
refute_includes output, "webpack binstub not found."
|
|
29
20
|
end
|
|
30
21
|
|
|
31
22
|
def test_check_node_version
|
|
@@ -13,18 +13,12 @@ default: &default
|
|
|
13
13
|
additional_paths:
|
|
14
14
|
- app/assets
|
|
15
15
|
- /etc/yarn
|
|
16
|
-
|
|
17
|
-
# This configuration option is deprecated and is only here for testing, to
|
|
18
|
-
# ensure backwards-compatibility. Please use `additional_paths`.
|
|
19
|
-
resolved_paths:
|
|
16
|
+
- some.config.js
|
|
20
17
|
- app/elm
|
|
21
18
|
|
|
22
19
|
# Reload manifest.json on all requests so we reload latest compiled packs
|
|
23
20
|
cache_manifest: false
|
|
24
21
|
|
|
25
|
-
# Extract and emit a css file
|
|
26
|
-
extract_css: false
|
|
27
|
-
|
|
28
22
|
static_assets_extensions:
|
|
29
23
|
- .jpg
|
|
30
24
|
- .jpeg
|
|
@@ -37,18 +31,6 @@ default: &default
|
|
|
37
31
|
extensions:
|
|
38
32
|
- .mjs
|
|
39
33
|
- .js
|
|
40
|
-
- .sass
|
|
41
|
-
- .scss
|
|
42
|
-
- .css
|
|
43
|
-
- .module.sass
|
|
44
|
-
- .module.scss
|
|
45
|
-
- .module.css
|
|
46
|
-
- .png
|
|
47
|
-
- .svg
|
|
48
|
-
- .gif
|
|
49
|
-
- .jpeg
|
|
50
|
-
- .jpg
|
|
51
|
-
- .elm
|
|
52
34
|
|
|
53
35
|
development:
|
|
54
36
|
<<: *default
|
|
@@ -81,9 +63,6 @@ production:
|
|
|
81
63
|
# Production depends on precompilation of packs prior to booting for performance.
|
|
82
64
|
compile: false
|
|
83
65
|
|
|
84
|
-
# Extract and emit a css file
|
|
85
|
-
extract_css: true
|
|
86
|
-
|
|
87
66
|
# Cache manifest.json for performance
|
|
88
67
|
cache_manifest: true
|
|
89
68
|
|
|
@@ -93,9 +72,6 @@ staging:
|
|
|
93
72
|
# Production depends on precompilation of packs prior to booting for performance.
|
|
94
73
|
compile: false
|
|
95
74
|
|
|
96
|
-
# Extract and emit a css file
|
|
97
|
-
extract_css: true
|
|
98
|
-
|
|
99
75
|
# Cache manifest.json for performance
|
|
100
76
|
cache_manifest: true
|
|
101
77
|
|
|
@@ -12,21 +12,25 @@
|
|
|
12
12
|
"media/images/nested/mb-icon.png": "/packs/media/images/nested/mb-icon-c38deda30895059837cf.png",
|
|
13
13
|
"entrypoints": {
|
|
14
14
|
"application": {
|
|
15
|
-
"
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
"assets": {
|
|
16
|
+
"js": [
|
|
17
|
+
"/packs/vendors~application~bootstrap-c20632e7baf2c81200d3.chunk.js",
|
|
18
|
+
"/packs/vendors~application-e55f2aae30c07fb6d82a.chunk.js",
|
|
19
|
+
"/packs/application-k344a6d59eef8632c9d1.js"
|
|
20
|
+
],
|
|
21
|
+
"css": [
|
|
22
|
+
"/packs/1-c20632e7baf2c81200d3.chunk.css",
|
|
23
|
+
"/packs/application-k344a6d59eef8632c9d1.chunk.css"
|
|
24
|
+
]
|
|
25
|
+
}
|
|
24
26
|
},
|
|
25
27
|
"hello_stimulus": {
|
|
26
|
-
"
|
|
27
|
-
"
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
"assets": {
|
|
29
|
+
"css": [
|
|
30
|
+
"/packs/1-c20632e7baf2c81200d3.chunk.css",
|
|
31
|
+
"/packs/hello_stimulus-k344a6d59eef8632c9d1.chunk.css"
|
|
32
|
+
]
|
|
33
|
+
}
|
|
30
34
|
}
|
|
31
35
|
}
|
|
32
36
|
}
|
|
File without changes
|
data/test/webpack_runner_test.rb
CHANGED
|
@@ -24,23 +24,29 @@ class WebpackRunnerTest < Webpacker::Test
|
|
|
24
24
|
verify_command(cmd, use_node_modules: false)
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
+
def test_run_cmd_argv
|
|
28
|
+
cmd = ["#{test_app_path}/node_modules/.bin/webpack", "--config", "#{test_app_path}/config/webpack/development.js", "--watch"]
|
|
29
|
+
|
|
30
|
+
verify_command(cmd, argv: ["--watch"])
|
|
31
|
+
end
|
|
32
|
+
|
|
27
33
|
private
|
|
28
34
|
def test_app_path
|
|
29
35
|
File.expand_path("test_app", __dir__)
|
|
30
36
|
end
|
|
31
37
|
|
|
32
|
-
def verify_command(cmd, use_node_modules: true)
|
|
38
|
+
def verify_command(cmd, use_node_modules: true, argv: [])
|
|
33
39
|
cwd = Dir.pwd
|
|
34
40
|
Dir.chdir(test_app_path)
|
|
35
41
|
|
|
36
42
|
klass = Webpacker::WebpackRunner
|
|
37
|
-
instance = klass.new(
|
|
43
|
+
instance = klass.new(argv)
|
|
38
44
|
mock = Minitest::Mock.new
|
|
39
45
|
mock.expect(:call, nil, [Webpacker::Compiler.env, *cmd])
|
|
40
46
|
|
|
41
47
|
klass.stub(:new, instance) do
|
|
42
48
|
instance.stub(:node_modules_bin_exist?, use_node_modules) do
|
|
43
|
-
Kernel.stub(:exec, mock) { klass.run(
|
|
49
|
+
Kernel.stub(:exec, mock) { klass.run(argv) }
|
|
44
50
|
end
|
|
45
51
|
end
|
|
46
52
|
|