shakapacker 6.6.0 → 7.0.0.rc.0

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 (197) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby-backward-compatibility.yml +43 -0
  3. data/CHANGELOG.md +50 -4
  4. data/CONTRIBUTING.md +4 -4
  5. data/Gemfile.development_dependencies +1 -1
  6. data/README.md +113 -88
  7. data/Rakefile +5 -0
  8. data/config/shakapacker.yml +1 -0
  9. data/docs/deployment.md +12 -10
  10. data/docs/developing_webpacker.md +5 -5
  11. data/docs/react.md +10 -6
  12. data/docs/style_loader_vs_mini_css.md +2 -2
  13. data/docs/troubleshooting.md +22 -18
  14. data/docs/using_esbuild_loader.md +5 -3
  15. data/docs/using_swc_loader.md +2 -2
  16. data/docs/v6_upgrade.md +2 -2
  17. data/docs/v7_upgrade.md +56 -0
  18. data/lib/install/bin/shakapacker +13 -0
  19. data/lib/install/bin/shakapacker-dev-server +13 -0
  20. data/lib/install/config/{webpacker.yml → shakapacker.yml} +13 -8
  21. data/lib/install/template.rb +7 -7
  22. data/lib/{webpacker → shakapacker}/base_strategy.rb +2 -2
  23. data/lib/{webpacker → shakapacker}/commands.rb +4 -4
  24. data/lib/{webpacker → shakapacker}/compiler.rb +43 -15
  25. data/lib/{webpacker → shakapacker}/compiler_strategy.rb +6 -6
  26. data/lib/{webpacker → shakapacker}/configuration.rb +52 -21
  27. data/lib/shakapacker/deprecation_helper.rb +88 -0
  28. data/lib/{webpacker → shakapacker}/dev_server.rb +27 -4
  29. data/lib/{webpacker → shakapacker}/dev_server_proxy.rb +4 -4
  30. data/lib/shakapacker/dev_server_runner.rb +104 -0
  31. data/lib/{webpacker → shakapacker}/digest_strategy.rb +6 -6
  32. data/lib/{webpacker → shakapacker}/env.rb +8 -8
  33. data/lib/{webpacker → shakapacker}/helper.rb +20 -20
  34. data/lib/{webpacker → shakapacker}/instance.rb +13 -10
  35. data/lib/{webpacker → shakapacker}/manifest.rb +14 -14
  36. data/lib/{webpacker → shakapacker}/mtime_strategy.rb +5 -5
  37. data/lib/shakapacker/railtie.rb +70 -0
  38. data/lib/shakapacker/runner.rb +28 -0
  39. data/lib/shakapacker/utils/version_syntax_converter.rb +2 -2
  40. data/lib/{webpacker → shakapacker}/version.rb +2 -2
  41. data/lib/{webpacker → shakapacker}/version_checker.rb +8 -8
  42. data/lib/shakapacker/webpack_runner.rb +67 -0
  43. data/lib/shakapacker.rb +51 -1
  44. data/lib/tasks/shakapacker/binstubs.rake +15 -0
  45. data/lib/tasks/shakapacker/check_binstubs.rake +25 -0
  46. data/lib/tasks/shakapacker/check_node.rake +31 -0
  47. data/lib/tasks/shakapacker/check_yarn.rake +33 -0
  48. data/lib/tasks/shakapacker/clean.rake +23 -0
  49. data/lib/tasks/shakapacker/clobber.rake +18 -0
  50. data/lib/tasks/shakapacker/compile.rake +31 -0
  51. data/lib/tasks/shakapacker/info.rake +21 -0
  52. data/lib/tasks/shakapacker/install.rake +17 -0
  53. data/lib/tasks/shakapacker/verify_config.rake +12 -0
  54. data/lib/tasks/shakapacker/verify_install.rake +4 -0
  55. data/lib/tasks/shakapacker/yarn_install.rake +24 -0
  56. data/lib/tasks/shakapacker.rake +18 -0
  57. data/lib/tasks/webpacker/binstubs.rake +5 -11
  58. data/lib/tasks/webpacker/check_binstubs.rake +6 -9
  59. data/lib/tasks/webpacker/check_node.rake +5 -27
  60. data/lib/tasks/webpacker/check_yarn.rake +5 -29
  61. data/lib/tasks/webpacker/clean.rake +5 -19
  62. data/lib/tasks/webpacker/clobber.rake +6 -13
  63. data/lib/tasks/webpacker/compile.rake +5 -33
  64. data/lib/tasks/webpacker/info.rake +5 -17
  65. data/lib/tasks/webpacker/install.rake +5 -13
  66. data/lib/tasks/webpacker/verify_config.rake +6 -11
  67. data/lib/tasks/webpacker/verify_install.rake +7 -2
  68. data/lib/tasks/webpacker/yarn_install.rake +5 -20
  69. data/lib/tasks/webpacker.rake +15 -13
  70. data/lib/webpacker/dev_server_runner.rb +9 -96
  71. data/lib/webpacker/webpack_runner.rb +9 -58
  72. data/lib/webpacker.rb +3 -47
  73. data/package/__tests__/config-bc.js +27 -0
  74. data/package/__tests__/config.js +6 -5
  75. data/package/__tests__/dev_server-bc.js +46 -0
  76. data/package/__tests__/dev_server.js +9 -8
  77. data/package/__tests__/development-bc.js +66 -0
  78. data/package/__tests__/development.js +36 -5
  79. data/package/__tests__/env-bc.js +59 -0
  80. data/package/__tests__/env.js +3 -2
  81. data/package/__tests__/index.js +13 -0
  82. data/package/__tests__/production-bc.js +51 -0
  83. data/package/__tests__/production.js +25 -3
  84. data/package/__tests__/staging-bc.js +53 -0
  85. data/package/__tests__/staging.js +27 -4
  86. data/package/__tests__/test-bc.js +43 -0
  87. data/package/__tests__/test.js +22 -4
  88. data/package/babel/preset.js +1 -4
  89. data/package/config.js +25 -7
  90. data/package/dev_server.js +7 -4
  91. data/package/env.js +22 -3
  92. data/package/environments/__tests__/base-bc.js +107 -0
  93. data/package/environments/__tests__/base.js +13 -13
  94. data/package/environments/base.js +1 -1
  95. data/package/environments/development.js +4 -46
  96. data/package/environments/production.js +1 -1
  97. data/package/index.js +11 -4
  98. data/package/rules/__tests__/__utils__/webpack.js +1 -1
  99. data/package/rules/__tests__/file.js +27 -0
  100. data/package/rules/__tests__/swc.js +1 -2
  101. data/package/rules/file.js +2 -2
  102. data/package/utils/configPath.js +19 -0
  103. data/package/utils/defaultConfigPath.js +2 -0
  104. data/package/utils/get_style_rule.js +5 -2
  105. data/package/utils/helpers.js +24 -1
  106. data/package/utils/inliningCss.js +7 -0
  107. data/package/utils/snakeToCamelCase +7 -0
  108. data/package/webpackDevServerConfig.js +68 -0
  109. data/package.json +2 -2
  110. data/{webpacker.gemspec → shakapacker.gemspec} +3 -3
  111. data/spec/backward_compatibility_specs/command_spec_bc.rb +116 -0
  112. data/spec/backward_compatibility_specs/compiler_spec_bc.rb +59 -0
  113. data/spec/backward_compatibility_specs/compiler_strategy_spec_bc.rb +22 -0
  114. data/spec/backward_compatibility_specs/configuration_spec_bc.rb +286 -0
  115. data/spec/backward_compatibility_specs/dev_server_runner_spec_bc.rb +79 -0
  116. data/spec/backward_compatibility_specs/dev_server_spec_bc.rb +47 -0
  117. data/spec/backward_compatibility_specs/digest_strategy_spec_bc.rb +35 -0
  118. data/spec/backward_compatibility_specs/engine_rake_tasks_spec_bc.rb +44 -0
  119. data/spec/backward_compatibility_specs/env_spec_bc.rb +23 -0
  120. data/spec/backward_compatibility_specs/helper_spec_bc.rb +243 -0
  121. data/spec/backward_compatibility_specs/instance_spec_bc.rb +31 -0
  122. data/spec/backward_compatibility_specs/manifest_spec_bc.rb +100 -0
  123. data/spec/backward_compatibility_specs/mtime_strategy_spec_bc.rb +55 -0
  124. data/spec/backward_compatibility_specs/rake_tasks_spec_bc.rb +37 -0
  125. data/spec/backward_compatibility_specs/spec_helper_initializer.rb +24 -0
  126. data/spec/backward_compatibility_specs/webpack_runner_spec_bc.rb +56 -0
  127. data/spec/backward_compatibility_specs/webpacker_spec_bc.rb +41 -0
  128. data/spec/backward_compatibility_specs/webpacker_test_app/.gitignore +2 -0
  129. data/spec/backward_compatibility_specs/webpacker_test_app/Rakefile +3 -0
  130. data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/app/packs/entrypoints/application.js +1 -1
  131. data/{lib/install → spec/backward_compatibility_specs/webpacker_test_app}/bin/webpacker +0 -0
  132. data/spec/backward_compatibility_specs/webpacker_test_app/config/application.rb +11 -0
  133. data/spec/backward_compatibility_specs/webpacker_test_app/config/environment.rb +4 -0
  134. data/spec/backward_compatibility_specs/webpacker_test_app/config/initializers/inspect_autoload_paths.rb +1 -0
  135. data/spec/backward_compatibility_specs/webpacker_test_app/config/webpack/webpack.config.js +0 -0
  136. data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/config/webpacker.yml +1 -1
  137. data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/config/webpacker_css_extract_ignore_order_warnings.yml +1 -1
  138. data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/config/webpacker_defaults_fallback.yml +1 -1
  139. data/spec/backward_compatibility_specs/webpacker_test_app/config/webpacker_no_precompile.yml +7 -0
  140. data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/config/webpacker_other_location.yml +1 -1
  141. data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/config/webpacker_public_root.yml +1 -1
  142. data/spec/backward_compatibility_specs/webpacker_test_app/config.ru +5 -0
  143. data/spec/backward_compatibility_specs/webpacker_test_app/package.json +13 -0
  144. data/spec/backward_compatibility_specs/webpacker_test_app/public/packs/manifest.json +58 -0
  145. data/spec/backward_compatibility_specs/webpacker_test_app/some.config.js +0 -0
  146. data/spec/backward_compatibility_specs/webpacker_test_app/tmp/shakapacker/last-compilation-digest-production +1 -0
  147. data/spec/backward_compatibility_specs/webpacker_test_app/yarn.lock +11 -0
  148. data/spec/command_spec.rb +18 -16
  149. data/spec/compiler_spec.rb +19 -17
  150. data/spec/compiler_strategy_spec.rb +9 -7
  151. data/spec/configuration_spec.rb +108 -66
  152. data/spec/dev_server_runner_spec.rb +9 -8
  153. data/spec/dev_server_spec.rb +97 -9
  154. data/spec/digest_strategy_spec.rb +4 -2
  155. data/spec/engine_rake_tasks_spec.rb +12 -16
  156. data/spec/env_spec.rb +7 -5
  157. data/spec/helper_spec.rb +4 -2
  158. data/spec/instance_spec.rb +31 -0
  159. data/spec/manifest_spec.rb +21 -19
  160. data/spec/mounted_app/test/dummy/config/application.rb +1 -1
  161. data/spec/mounted_app/test/dummy/config/webpacker.yml +3 -3
  162. data/spec/mtime_strategy_spec.rb +4 -2
  163. data/spec/rake_tasks_spec.rb +20 -18
  164. data/spec/spec_helper.rb +0 -25
  165. data/spec/spec_helper_initializer.rb +24 -0
  166. data/spec/test_app/.gitignore +2 -0
  167. data/spec/test_app/app/javascript/entrypoints/application.js +10 -0
  168. data/spec/test_app/app/javascript/entrypoints/generated/something.js +2 -0
  169. data/spec/test_app/app/javascript/entrypoints/multi_entry.css +4 -0
  170. data/spec/test_app/app/javascript/entrypoints/multi_entry.js +4 -0
  171. data/spec/test_app/bin/{webpacker-dev-server → shakapacker} +3 -3
  172. data/spec/test_app/bin/{webpacker → shakapacker-dev-server} +3 -3
  173. data/spec/test_app/config/application.rb +1 -1
  174. data/spec/test_app/config/shakapacker.yml +82 -0
  175. data/spec/test_app/config/shakapacker_css_extract_ignore_order_warnings.yml +84 -0
  176. data/spec/test_app/config/shakapacker_defaults_fallback.yml +11 -0
  177. data/spec/test_app/config/shakapacker_manifest_path.yml +80 -0
  178. data/spec/test_app/config/shakapacker_nested_entries.yml +83 -0
  179. data/spec/test_app/config/shakapacker_no_precompile.yml +7 -0
  180. data/spec/test_app/config/shakapacker_other_location.yml +85 -0
  181. data/spec/test_app/config/shakapacker_public_root.yml +18 -0
  182. data/spec/version_checker_spec.rb +16 -15
  183. data/spec/webpack_runner_spec.rb +4 -3
  184. data/spec/webpacker_spec.rb +9 -29
  185. metadata +119 -44
  186. data/config/webpacker.yml +0 -1
  187. data/lib/webpacker/railtie.rb +0 -70
  188. data/lib/webpacker/runner.rb +0 -23
  189. data/package/configPath.js +0 -3
  190. data/package/inliningCss.js +0 -7
  191. data/spec/test_app/config/webpacker_no_precompile.yml +0 -7
  192. /data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/app/packs/entrypoints/generated/something.js +0 -0
  193. /data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/app/packs/entrypoints/multi_entry.css +0 -0
  194. /data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/app/packs/entrypoints/multi_entry.js +0 -0
  195. /data/{lib/install → spec/backward_compatibility_specs/webpacker_test_app}/bin/webpacker-dev-server +0 -0
  196. /data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/config/webpacker_manifest_path.yml +0 -0
  197. /data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/config/webpacker_nested_entries.yml +0 -0
@@ -0,0 +1,83 @@
1
+ # Note: You must restart bin/shakapacker-dev-server for changes to take effect
2
+
3
+ default: &default
4
+ source_path: app/javascript
5
+ source_entry_path: entrypoints
6
+ nested_entries: true
7
+ public_root_path: public
8
+ public_output_path: packs
9
+ cache_path: tmp/shakapacker
10
+ webpack_compile_output: false
11
+ webpack_loader: babel
12
+
13
+ # Location for manifest.json, defaults to {public_output_path}/manifest.json if unset
14
+ # manifest_path: public/packs/manifest.json
15
+
16
+ # Additional paths webpack should look up modules
17
+ # ['app/assets', 'engine/foo/app/assets']
18
+ additional_paths:
19
+ - app/assets
20
+ - /etc/yarn
21
+ - some.config.js
22
+ - app/elm
23
+
24
+ # Reload manifest.json on all requests so we reload latest compiled packs
25
+ cache_manifest: false
26
+
27
+ static_assets_extensions:
28
+ - .jpg
29
+ - .jpeg
30
+ - .png
31
+ - .gif
32
+ - .tiff
33
+ - .ico
34
+ - .svg
35
+
36
+ extensions:
37
+ - .mjs
38
+ - .js
39
+
40
+ development:
41
+ <<: *default
42
+ compile: true
43
+ ensure_consistent_versioning: true
44
+
45
+ # Reference: https://webpack.js.org/configuration/dev-server/
46
+ dev_server:
47
+ https: false
48
+ host: localhost
49
+ port: 3035
50
+ public: localhost:3035
51
+ hmr: false
52
+ overlay: true
53
+ disable_host_check: true
54
+ use_local_ip: false
55
+ pretty: false
56
+
57
+ test:
58
+ <<: *default
59
+ compile: true
60
+
61
+ # Compile test packs to a separate directory
62
+ public_output_path: packs-test
63
+
64
+ production:
65
+ <<: *default
66
+
67
+ # Production depends on precompilation of packs prior to booting for performance.
68
+ compile: false
69
+
70
+ # Cache manifest.json for performance
71
+ cache_manifest: true
72
+
73
+ staging:
74
+ <<: *default
75
+
76
+ # Production depends on precompilation of packs prior to booting for performance.
77
+ compile: false
78
+
79
+ # Cache manifest.json for performance
80
+ cache_manifest: true
81
+
82
+ # Compile staging packs to a separate directory
83
+ public_output_path: packs-staging
@@ -0,0 +1,7 @@
1
+ # Note: You must restart bin/shakapacker-dev-server for changes to take effect
2
+
3
+ default: &default
4
+ shakapacker_precompile: false
5
+
6
+ production:
7
+ <<: *default
@@ -0,0 +1,85 @@
1
+ # Note: You must restart bin/shakapacker-dev-server for changes to take effect
2
+
3
+ default: &default
4
+ source_path: app/javascript
5
+ source_entry_path: entrypoints
6
+ public_root_path: public
7
+ public_output_path: packs
8
+ cache_path: tmp/cache/shakapacker
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
+ # If HMR is on, CSS will by inlined by delivering it as part of the script payload via style-loader. Be sure
47
+ # that you add style-loader to your project dependencies.
48
+ #
49
+ # If you want to instead deliver CSS via <link> with the mini-extract-css-plugin, set inline_css to false.
50
+ # In that case, style-loader is not needed as a dependency.
51
+ #
52
+ # mini-extract-css-plugin is a required dependency in both cases.
53
+ inline_css: true
54
+ overlay: true
55
+ disable_host_check: true
56
+ use_local_ip: false
57
+ pretty: false
58
+
59
+ test:
60
+ <<: *default
61
+ compile: true
62
+
63
+ # Compile test packs to a separate directory
64
+ public_output_path: packs-test
65
+
66
+ production:
67
+ <<: *default
68
+
69
+ # Production depends on precompilation of packs prior to booting for performance.
70
+ compile: false
71
+
72
+ # Cache manifest.json for performance
73
+ cache_manifest: true
74
+
75
+ staging:
76
+ <<: *default
77
+
78
+ # Production depends on precompilation of packs prior to booting for performance.
79
+ compile: false
80
+
81
+ # Cache manifest.json for performance
82
+ cache_manifest: true
83
+
84
+ # Compile staging packs to a separate directory
85
+ public_output_path: packs-staging
@@ -0,0 +1,18 @@
1
+ # Note: You must restart bin/shakapacker-dev-server for changes to take effect
2
+
3
+ default: &default
4
+ public_root_path: ../public
5
+
6
+ development:
7
+ <<: *default
8
+ compile: true
9
+
10
+ test:
11
+ <<: *default
12
+ compile: true
13
+ public_output_path: packs-test
14
+
15
+ production:
16
+ <<: *default
17
+ compile: false
18
+ cache_manifest: true
@@ -1,4 +1,5 @@
1
- require "webpacker/version"
1
+ require_relative "spec_helper_initializer"
2
+ require "shakapacker/version"
2
3
 
3
4
  class NodePackageVersionDouble
4
5
  attr_reader :raw, :major_minor_patch
@@ -20,10 +21,10 @@ class NodePackageVersionDouble
20
21
  end
21
22
 
22
23
  describe "VersionChecker" do
23
- def check_version(node_package_version, stub_gem_version = Webpacker::VERSION, stub_config = true)
24
- version_checker = Webpacker::VersionChecker.new(node_package_version)
24
+ def check_version(node_package_version, stub_gem_version = Shakapacker::VERSION, stub_config = true)
25
+ version_checker = Shakapacker::VersionChecker.new(node_package_version)
25
26
  allow(version_checker).to receive(:gem_version).and_return(stub_gem_version)
26
- allow(Webpacker.config).to receive(:ensure_consistent_versioning?).and_return(stub_config)
27
+ allow(Shakapacker.config).to receive(:ensure_consistent_versioning?).and_return(stub_config)
27
28
 
28
29
  version_checker.raise_if_gem_and_node_package_versions_differ
29
30
  end
@@ -32,7 +33,7 @@ describe "VersionChecker" do
32
33
  node_package_version = NodePackageVersionDouble.new(raw: "6.1.0", major_minor_patch: ["6", "1", "0"])
33
34
 
34
35
  expect { check_version(node_package_version, "6.0.0", false) }
35
- .to output(/Webpacker::VersionChecker - Version mismatch/)
36
+ .to output(/Shakapacker::VersionChecker - Version mismatch/)
36
37
  .to_stderr
37
38
  end
38
39
 
@@ -40,7 +41,7 @@ describe "VersionChecker" do
40
41
  node_package_version = NodePackageVersionDouble.new(raw: "^6.1.0", major_minor_patch: ["6", "1", "0"], semver_wildcard: true)
41
42
 
42
43
  expect { check_version(node_package_version, "6.0.0", false) }
43
- .to output(/Webpacker::VersionChecker - Semver wildcard without a lockfile detected/)
44
+ .to output(/Shakapacker::VersionChecker - Semver wildcard without a lockfile detected/)
44
45
  .to_stderr
45
46
  end
46
47
 
@@ -48,28 +49,28 @@ describe "VersionChecker" do
48
49
  node_package_version = NodePackageVersionDouble.new(raw: "6.1.0", major_minor_patch: ["6", "1", "0"])
49
50
 
50
51
  expect { check_version(node_package_version, "7.0.0") }
51
- .to raise_error(/\*\*ERROR\*\* Webpacker: Webpacker gem and node package versions do not match/)
52
+ .to raise_error(/\*\*ERROR\*\* Shakapacker: Shakapacker gem and node package versions do not match/)
52
53
  end
53
54
 
54
55
  it "raises exception on different minor version" do
55
56
  node_package_version = NodePackageVersionDouble.new(raw: "6.1.0", major_minor_patch: ["6", "1", "0"])
56
57
 
57
58
  expect { check_version(node_package_version, "6.2.0") }
58
- .to raise_error(/\*\*ERROR\*\* Webpacker: Webpacker gem and node package versions do not match/)
59
+ .to raise_error(/\*\*ERROR\*\* Shakapacker: Shakapacker gem and node package versions do not match/)
59
60
  end
60
61
 
61
62
  it "raises exception on different patch version" do
62
63
  node_package_version = NodePackageVersionDouble.new(raw: "6.1.1", major_minor_patch: ["6", "1", "1"])
63
64
 
64
65
  expect { check_version(node_package_version, "6.1.2") }
65
- .to raise_error(/\*\*ERROR\*\* Webpacker: Webpacker gem and node package versions do not match/)
66
+ .to raise_error(/\*\*ERROR\*\* Shakapacker: Shakapacker gem and node package versions do not match/)
66
67
  end
67
68
 
68
69
  it "raises exception on semver wildcard" do
69
70
  node_package_version = NodePackageVersionDouble.new(raw: "^6.0.0", major_minor_patch: ["6", "0", "0"], semver_wildcard: true)
70
71
 
71
72
  expect { check_version(node_package_version, "6.0.0") }
72
- .to raise_error(/\*\*ERROR\*\* Webpacker: Your node package version for shakapacker contains a \^ or ~/)
73
+ .to raise_error(/\*\*ERROR\*\* Shakapacker: Your node package version for shakapacker contains a \^ or ~/)
73
74
  end
74
75
 
75
76
  it "doesn't raise exception on matching versions" do
@@ -100,7 +101,7 @@ end
100
101
  describe "VersionChecker::NodePackageVersion" do
101
102
  context "with no yarn.lock file" do
102
103
  def node_package_version(fixture_version:)
103
- Webpacker::VersionChecker::NodePackageVersion.new(
104
+ Shakapacker::VersionChecker::NodePackageVersion.new(
104
105
  File.expand_path("fixtures/#{fixture_version}_package.json", __dir__),
105
106
  "file/does/not/exist",
106
107
  "file/does/not/exist"
@@ -270,7 +271,7 @@ describe "VersionChecker::NodePackageVersion" do
270
271
 
271
272
  context "with yarn.lock v1" do
272
273
  def node_package_version(fixture_version:)
273
- Webpacker::VersionChecker::NodePackageVersion.new(
274
+ Shakapacker::VersionChecker::NodePackageVersion.new(
274
275
  File.expand_path("fixtures/#{fixture_version}_package.json", __dir__),
275
276
  File.expand_path("fixtures/#{fixture_version}_yarn.v1.lock", __dir__),
276
277
  "file/does/not/exist"
@@ -440,7 +441,7 @@ describe "VersionChecker::NodePackageVersion" do
440
441
 
441
442
  context "with yarn.lock v2" do
442
443
  def node_package_version(fixture_version:)
443
- Webpacker::VersionChecker::NodePackageVersion.new(
444
+ Shakapacker::VersionChecker::NodePackageVersion.new(
444
445
  File.expand_path("fixtures/#{fixture_version}_package.json", __dir__),
445
446
  File.expand_path("fixtures/#{fixture_version}_yarn.v2.lock", __dir__),
446
447
  "file/does/not/exist"
@@ -610,7 +611,7 @@ describe "VersionChecker::NodePackageVersion" do
610
611
 
611
612
  context "with package-lock.json v1" do
612
613
  def node_package_version(fixture_version:)
613
- Webpacker::VersionChecker::NodePackageVersion.new(
614
+ Shakapacker::VersionChecker::NodePackageVersion.new(
614
615
  File.expand_path("fixtures/#{fixture_version}_package.json", __dir__),
615
616
  "file/does/not/exist",
616
617
  File.expand_path("fixtures/#{fixture_version}_package-lock.v1.json", __dir__),
@@ -780,7 +781,7 @@ describe "VersionChecker::NodePackageVersion" do
780
781
 
781
782
  context "with package-lock.json v2" do
782
783
  def node_package_version(fixture_version:)
783
- Webpacker::VersionChecker::NodePackageVersion.new(
784
+ Shakapacker::VersionChecker::NodePackageVersion.new(
784
785
  File.expand_path("fixtures/#{fixture_version}_package.json", __dir__),
785
786
  "file/does/not/exist",
786
787
  File.expand_path("fixtures/#{fixture_version}_package-lock.v2.json", __dir__),
@@ -1,4 +1,5 @@
1
- require "webpacker/webpack_runner"
1
+ require_relative "spec_helper_initializer"
2
+ require "shakapacker/webpack_runner"
2
3
 
3
4
  describe "WebpackRunner" do
4
5
  before :all do
@@ -38,7 +39,7 @@ describe "WebpackRunner" do
38
39
  cwd = Dir.pwd
39
40
  Dir.chdir(test_app_path)
40
41
 
41
- klass = Webpacker::WebpackRunner
42
+ klass = Shakapacker::WebpackRunner
42
43
  instance = klass.new(argv)
43
44
 
44
45
  allow(klass).to receive(:new).and_return(instance)
@@ -47,7 +48,7 @@ describe "WebpackRunner" do
47
48
 
48
49
  klass.run(argv)
49
50
 
50
- expect(Kernel).to have_received(:exec).with(Webpacker::Compiler.env, *cmd)
51
+ expect(Kernel).to have_received(:exec).with(Shakapacker::Compiler.env, *cmd)
51
52
  ensure
52
53
  Dir.chdir(cwd)
53
54
  end
@@ -1,6 +1,8 @@
1
- describe "Webpacker" do
1
+ require_relative "spec_helper_initializer"
2
+
3
+ describe "Shakapacker" do
2
4
  describe "#inline_css?" do
3
- let(:dev_server) { instance_double("Webpacker::DevServer") }
5
+ let(:dev_server) { instance_double("Shakapacker::DevServer") }
4
6
 
5
7
  before :each do
6
8
  allow(dev_server).to receive(:host).and_return("localhost")
@@ -11,47 +13,25 @@ describe "Webpacker" do
11
13
  end
12
14
 
13
15
  it "returns nil with disabled dev_server" do
14
- expect(Webpacker.inlining_css?).to be nil
16
+ expect(Shakapacker.inlining_css?).to be nil
15
17
  end
16
18
 
17
19
  it "returns true with enabled hmr" do
18
20
  allow(dev_server).to receive(:hmr?).and_return(true)
19
21
  allow(dev_server).to receive(:inline_css?).and_return(true)
20
22
 
21
- allow(Webpacker.instance).to receive(:dev_server).and_return(dev_server)
23
+ allow(Shakapacker.instance).to receive(:dev_server).and_return(dev_server)
22
24
 
23
- expect(Webpacker.inlining_css?).to be true
25
+ expect(Shakapacker.inlining_css?).to be true
24
26
  end
25
27
 
26
28
  it "returns false with enabled hmr and explicitly setting inline_css to false" do
27
29
  allow(dev_server).to receive(:hmr?).and_return(true)
28
30
  allow(dev_server).to receive(:inline_css?).and_return(false)
29
31
 
30
- allow(Webpacker.instance).to receive(:dev_server).and_return(dev_server)
31
-
32
- expect(Webpacker.inlining_css?).to be false
33
- end
34
- end
35
-
36
- describe "configurable config" do
37
- before do
38
- @original_webpacker_config = ENV["WEBPACKER_CONFIG"]
39
- end
40
-
41
- after do
42
- ENV["WEBPACKER_CONFIG"] = @original_webpacker_config
43
- end
44
-
45
- it "allows config file to be changed based on ENV variable" do
46
- ENV.delete("WEBPACKER_CONFIG")
47
- Webpacker.instance = nil
48
- expect(Webpacker.config.config_path.to_s).to eq(Rails.root.join("config/webpacker.yml").to_s)
49
- end
32
+ allow(Shakapacker.instance).to receive(:dev_server).and_return(dev_server)
50
33
 
51
- it "allows config file to be changed based on ENV variable" do
52
- ENV["WEBPACKER_CONFIG"] = "/some/random/path.yml"
53
- Webpacker.instance = nil
54
- expect(Webpacker.config.config_path.to_s).to eq("/some/random/path.yml")
34
+ expect(Shakapacker.inlining_css?).to be false
55
35
  end
56
36
  end
57
37