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

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.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/jest.yml +7 -15
  3. data/.github/workflows/js-lint.yml +7 -15
  4. data/.github/workflows/rubocop.yml +1 -1
  5. data/.github/workflows/ruby.yml +18 -40
  6. data/.node-version +1 -1
  7. data/.rubocop.yml +107 -1
  8. data/CHANGELOG.md +48 -9
  9. data/CONTRIBUTING.md +20 -1
  10. data/Gemfile.lock +107 -104
  11. data/README.md +387 -177
  12. data/config/README.md +3 -0
  13. data/config/webpacker.yml +1 -0
  14. data/docs/deployment.md +9 -29
  15. data/docs/developing_webpacker.md +29 -0
  16. data/docs/troubleshooting.md +61 -25
  17. data/docs/v6_upgrade.md +113 -0
  18. data/gemfiles/Gemfile-rails-edge +1 -1
  19. data/gemfiles/Gemfile-rails.6.1.x +12 -0
  20. data/lib/install/{javascript/packs/application.js → application.js} +2 -5
  21. data/lib/install/bin/webpack +4 -7
  22. data/lib/install/bin/yarn +18 -0
  23. data/lib/install/config/webpacker.yml +18 -17
  24. data/lib/install/package.json +15 -0
  25. data/lib/install/template.rb +50 -21
  26. data/lib/tasks/webpacker/binstubs.rake +2 -2
  27. data/lib/tasks/webpacker/check_node.rake +3 -0
  28. data/lib/tasks/webpacker/check_yarn.rake +4 -1
  29. data/lib/tasks/webpacker/clobber.rake +1 -1
  30. data/lib/tasks/webpacker/install.rake +2 -2
  31. data/lib/tasks/webpacker/verify_config.rake +14 -0
  32. data/lib/tasks/webpacker/verify_install.rake +1 -11
  33. data/lib/tasks/yarn.rake +38 -0
  34. data/lib/webpacker/commands.rb +21 -16
  35. data/lib/webpacker/compiler.rb +9 -3
  36. data/lib/webpacker/configuration.rb +19 -8
  37. data/lib/webpacker/dev_server.rb +6 -0
  38. data/lib/webpacker/dev_server_runner.rb +7 -2
  39. data/lib/webpacker/env.rb +5 -1
  40. data/lib/webpacker/helper.rb +26 -50
  41. data/lib/webpacker/instance.rb +4 -0
  42. data/lib/webpacker/manifest.rb +1 -2
  43. data/lib/webpacker/railtie.rb +8 -2
  44. data/lib/webpacker/runner.rb +1 -1
  45. data/lib/webpacker/version.rb +1 -1
  46. data/lib/webpacker/webpack_runner.rb +27 -6
  47. data/lib/webpacker.rb +1 -1
  48. data/package/__tests__/development.js +4 -10
  49. data/package/__tests__/env.js +8 -4
  50. data/package/__tests__/index.js +9 -0
  51. data/package/babel/preset.js +24 -14
  52. data/package/config.js +3 -3
  53. data/package/env.js +6 -3
  54. data/package/environments/__tests__/base.js +7 -7
  55. data/package/environments/base.js +25 -25
  56. data/package/environments/development.js +36 -35
  57. data/package/environments/production.js +28 -30
  58. data/package/index.js +9 -2
  59. data/package/inliningCss.js +7 -0
  60. data/package/rules/babel.js +1 -1
  61. data/package/rules/coffee.js +5 -5
  62. data/package/rules/erb.js +5 -3
  63. data/package/rules/file.js +5 -3
  64. data/package/rules/index.js +9 -17
  65. data/package/rules/less.js +14 -10
  66. data/package/rules/raw.js +5 -0
  67. data/package/rules/sass.js +12 -9
  68. data/package/rules/stylus.js +26 -0
  69. data/package/utils/get_style_rule.js +28 -30
  70. data/package/utils/helpers.js +25 -0
  71. data/package.json +25 -29
  72. data/test/command_test.rb +76 -0
  73. data/test/configuration_test.rb +3 -3
  74. data/test/dev_server_runner_test.rb +13 -2
  75. data/test/helper_test.rb +69 -61
  76. data/test/manifest_test.rb +16 -0
  77. data/test/mounted_app/test/dummy/config/webpacker.yml +4 -4
  78. data/test/test_app/app/{javascript/packs → packs/entrypoints}/application.js +1 -1
  79. data/test/test_app/config/initializers/inspect_autoload_paths.rb +1 -0
  80. data/test/test_app/config/webpacker.yml +4 -6
  81. data/test/test_app/config/webpacker_other_location.yml +79 -0
  82. data/test/test_app/public/packs/manifest.json +19 -5
  83. data/test/webpacker_test.rb +21 -0
  84. data/webpacker.gemspec +2 -2
  85. data/yarn.lock +2357 -3262
  86. metadata +34 -41
  87. data/docs/assets.md +0 -135
  88. data/docs/cloud9.md +0 -310
  89. data/docs/css.md +0 -303
  90. data/docs/docker.md +0 -68
  91. data/docs/engines.md +0 -213
  92. data/docs/env.md +0 -68
  93. data/docs/es6.md +0 -72
  94. data/docs/folder-structure.md +0 -66
  95. data/docs/integrations.md +0 -220
  96. data/docs/misc.md +0 -23
  97. data/docs/props.md +0 -187
  98. data/docs/react.md +0 -183
  99. data/docs/target.md +0 -22
  100. data/docs/testing.md +0 -147
  101. data/docs/typescript.md +0 -190
  102. data/docs/v4-upgrade.md +0 -142
  103. data/docs/webpack-dev-server.md +0 -94
  104. data/docs/webpack.md +0 -315
  105. data/docs/yarn.md +0 -23
  106. data/lib/install/examples/vue3/app.vue +0 -27
  107. data/lib/install/examples/vue3/hello_vue.js +0 -15
  108. data/lib/install/javascript/packs/application.css +0 -9
  109. data/package/babel/preset-react.js +0 -62
  110. data/package/rules/svg.js +0 -23
  111. /data/test/test_app/app/{javascript/packs → packs/entrypoints}/multi_entry.css +0 -0
  112. /data/test/test_app/app/{javascript/packs → packs/entrypoints}/multi_entry.js +0 -0
@@ -1,14 +1,14 @@
1
1
  # Note: You must restart bin/webpack-dev-server for changes to take effect
2
2
 
3
3
  default: &default
4
- source_path: app/javascript
5
- source_entry_path: packs
4
+ source_path: app/packs
5
+ source_entry_path: entrypoints
6
6
  public_root_path: public
7
7
  public_output_path: packs
8
- cache_path: tmp/cache/webpacker
8
+ cache_path: tmp/webpacker
9
9
  webpack_compile_output: false
10
10
 
11
- # Additional paths webpack should lookup modules
11
+ # Additional paths webpack should look up modules
12
12
  # ['app/assets', 'engine/foo/app/assets']
13
13
  additional_paths:
14
14
  - app/assets
@@ -43,8 +43,6 @@ development:
43
43
  port: 3035
44
44
  public: localhost:3035
45
45
  hmr: false
46
- # Inline should be set to true if using HMR
47
- inline: true
48
46
  overlay: true
49
47
  disable_host_check: true
50
48
  use_local_ip: false
@@ -0,0 +1,79 @@
1
+ # Note: You must restart bin/webpack-dev-server for changes to take effect
2
+
3
+ default: &default
4
+ source_path: app/packs
5
+ source_entry_path: entrypoints
6
+ public_root_path: public
7
+ public_output_path: packs
8
+ cache_path: tmp/cache/webpacker
9
+ webpack_compile_output: false
10
+
11
+ # Additional paths webpack should look up modules
12
+ # ['app/assets', 'engine/foo/app/assets']
13
+ additional_paths:
14
+ - app/assets
15
+ - /etc/yarn
16
+ - some.config.js
17
+ - app/elm
18
+
19
+ # Reload manifest.json on all requests so we reload latest compiled packs
20
+ cache_manifest: false
21
+
22
+ static_assets_extensions:
23
+ - .jpg
24
+ - .jpeg
25
+ - .png
26
+ - .gif
27
+ - .tiff
28
+ - .ico
29
+ - .svg
30
+
31
+ extensions:
32
+ - .mjs
33
+ - .js
34
+
35
+ development:
36
+ <<: *default
37
+ compile: true
38
+
39
+ # Reference: https://webpack.js.org/configuration/dev-server/
40
+ dev_server:
41
+ https: false
42
+ host: localhost
43
+ port: 3035
44
+ public: localhost:3035
45
+ hmr: false
46
+ # Inline should be set to true if using HMR
47
+ inline: true
48
+ overlay: true
49
+ disable_host_check: true
50
+ use_local_ip: false
51
+ pretty: false
52
+
53
+ test:
54
+ <<: *default
55
+ compile: true
56
+
57
+ # Compile test packs to a separate directory
58
+ public_output_path: packs-test
59
+
60
+ production:
61
+ <<: *default
62
+
63
+ # Production depends on precompilation of packs prior to booting for performance.
64
+ compile: false
65
+
66
+ # Cache manifest.json for performance
67
+ cache_manifest: true
68
+
69
+ staging:
70
+ <<: *default
71
+
72
+ # Production depends on precompilation of packs prior to booting for performance.
73
+ compile: false
74
+
75
+ # Cache manifest.json for performance
76
+ cache_manifest: true
77
+
78
+ # Compile staging packs to a separate directory
79
+ public_output_path: packs-staging
@@ -5,11 +5,11 @@
5
5
  "application.js": "/packs/application-k344a6d59eef8632c9d1.js",
6
6
  "application.png": "/packs/application-k344a6d59eef8632c9d1.png",
7
7
  "fonts/fa-regular-400.woff2": "/packs/fonts/fa-regular-400-944fb546bd7018b07190a32244f67dc9.woff2",
8
- "media/images/image.jpg": "/packs/media/images/image-c38deda30895059837cf.jpg",
9
- "media/images/image-2x.jpg": "/packs/media/images/image-2x-7cca48e6cae66ec07b8e.jpg",
10
- "media/images/nested/image.jpg": "/packs/media/images/nested/image-c38deda30895059837cf.jpg",
11
- "media/images/mb-icon.png": "/packs/media/images/mb-icon-c38deda30895059837cf.png",
12
- "media/images/nested/mb-icon.png": "/packs/media/images/nested/mb-icon-c38deda30895059837cf.png",
8
+ "static/image.jpg": "/packs/static/image-c38deda30895059837cf.jpg",
9
+ "static/image-2x.jpg": "/packs/static/image-2x-7cca48e6cae66ec07b8e.jpg",
10
+ "static/nested/image.jpg": "/packs/static/nested/image-c38deda30895059837cf.jpg",
11
+ "static/mb-icon.png": "/packs/static/mb-icon-c38deda30895059837cf.png",
12
+ "static/nested/mb-icon.png": "/packs/static/nested/mb-icon-c38deda30895059837cf.png",
13
13
  "entrypoints": {
14
14
  "application": {
15
15
  "assets": {
@@ -24,6 +24,13 @@
24
24
  ]
25
25
  }
26
26
  },
27
+ "bootstrap": {
28
+ "assets": {
29
+ "js": [
30
+ "/packs/bootstrap-300631c4f0e0f9c865bc.js"
31
+ ]
32
+ }
33
+ },
27
34
  "hello_stimulus": {
28
35
  "assets": {
29
36
  "css": [
@@ -31,6 +38,13 @@
31
38
  "/packs/hello_stimulus-k344a6d59eef8632c9d1.chunk.css"
32
39
  ]
33
40
  }
41
+ },
42
+ "print/application": {
43
+ "assets": {
44
+ "css": [
45
+ "/packs/print/application-983b6c164a47f7ed49cd.css"
46
+ ]
47
+ }
34
48
  }
35
49
  }
36
50
  }
@@ -10,4 +10,25 @@ class WebpackerTest < Webpacker::Test
10
10
  assert_equal "test", Webpacker.config.env
11
11
  end
12
12
  end
13
+
14
+ def test_inline_css_no_dev_server
15
+ assert !Webpacker.inlining_css?
16
+ end
17
+
18
+ def test_inline_css_with_hmr
19
+ dev_server = Webpacker::DevServer.new({})
20
+ def dev_server.host; "localhost"; end
21
+ def dev_server.port; "3035"; end
22
+ def dev_server.pretty?; false; end
23
+ def dev_server.https?; true; end
24
+ def dev_server.hmr?; true; end
25
+ def dev_server.running?; true; end
26
+ Webpacker.instance.stub(:dev_server, dev_server) do
27
+ assert Webpacker.inlining_css?
28
+ end
29
+ end
30
+
31
+ def test_app_autoload_paths_cleanup
32
+ assert_empty $test_app_autoload_paths_in_initializer
33
+ end
13
34
  end
data/webpacker.gemspec CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
15
15
  "changelog_uri" => "https://github.com/rails/webpacker/blob/v#{Webpacker::VERSION}/CHANGELOG.md"
16
16
  }
17
17
 
18
- s.required_ruby_version = ">= 2.4.0"
18
+ s.required_ruby_version = ">= 2.7.0"
19
19
 
20
20
  s.add_dependency "activesupport", ">= 5.2"
21
21
  s.add_dependency "railties", ">= 5.2"
@@ -23,7 +23,7 @@ Gem::Specification.new do |s|
23
23
  s.add_dependency "semantic_range", ">= 2.3.0"
24
24
 
25
25
  s.add_development_dependency "bundler", ">= 1.3.0"
26
- s.add_development_dependency "rubocop", "0.93.1"
26
+ s.add_development_dependency "rubocop"
27
27
  s.add_development_dependency "rubocop-performance"
28
28
 
29
29
  s.files = `git ls-files`.split("\n")