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.
- checksums.yaml +4 -4
- data/.github/workflows/ruby-backward-compatibility.yml +43 -0
- data/CHANGELOG.md +50 -4
- data/CONTRIBUTING.md +4 -4
- data/Gemfile.development_dependencies +1 -1
- data/README.md +113 -88
- data/Rakefile +5 -0
- data/config/shakapacker.yml +1 -0
- data/docs/deployment.md +12 -10
- data/docs/developing_webpacker.md +5 -5
- data/docs/react.md +10 -6
- data/docs/style_loader_vs_mini_css.md +2 -2
- data/docs/troubleshooting.md +22 -18
- data/docs/using_esbuild_loader.md +5 -3
- data/docs/using_swc_loader.md +2 -2
- data/docs/v6_upgrade.md +2 -2
- data/docs/v7_upgrade.md +56 -0
- data/lib/install/bin/shakapacker +13 -0
- data/lib/install/bin/shakapacker-dev-server +13 -0
- data/lib/install/config/{webpacker.yml → shakapacker.yml} +13 -8
- data/lib/install/template.rb +7 -7
- data/lib/{webpacker → shakapacker}/base_strategy.rb +2 -2
- data/lib/{webpacker → shakapacker}/commands.rb +4 -4
- data/lib/{webpacker → shakapacker}/compiler.rb +43 -15
- data/lib/{webpacker → shakapacker}/compiler_strategy.rb +6 -6
- data/lib/{webpacker → shakapacker}/configuration.rb +52 -21
- data/lib/shakapacker/deprecation_helper.rb +88 -0
- data/lib/{webpacker → shakapacker}/dev_server.rb +27 -4
- data/lib/{webpacker → shakapacker}/dev_server_proxy.rb +4 -4
- data/lib/shakapacker/dev_server_runner.rb +104 -0
- data/lib/{webpacker → shakapacker}/digest_strategy.rb +6 -6
- data/lib/{webpacker → shakapacker}/env.rb +8 -8
- data/lib/{webpacker → shakapacker}/helper.rb +20 -20
- data/lib/{webpacker → shakapacker}/instance.rb +13 -10
- data/lib/{webpacker → shakapacker}/manifest.rb +14 -14
- data/lib/{webpacker → shakapacker}/mtime_strategy.rb +5 -5
- data/lib/shakapacker/railtie.rb +70 -0
- data/lib/shakapacker/runner.rb +28 -0
- data/lib/shakapacker/utils/version_syntax_converter.rb +2 -2
- data/lib/{webpacker → shakapacker}/version.rb +2 -2
- data/lib/{webpacker → shakapacker}/version_checker.rb +8 -8
- data/lib/shakapacker/webpack_runner.rb +67 -0
- data/lib/shakapacker.rb +51 -1
- data/lib/tasks/shakapacker/binstubs.rake +15 -0
- data/lib/tasks/shakapacker/check_binstubs.rake +25 -0
- data/lib/tasks/shakapacker/check_node.rake +31 -0
- data/lib/tasks/shakapacker/check_yarn.rake +33 -0
- data/lib/tasks/shakapacker/clean.rake +23 -0
- data/lib/tasks/shakapacker/clobber.rake +18 -0
- data/lib/tasks/shakapacker/compile.rake +31 -0
- data/lib/tasks/shakapacker/info.rake +21 -0
- data/lib/tasks/shakapacker/install.rake +17 -0
- data/lib/tasks/shakapacker/verify_config.rake +12 -0
- data/lib/tasks/shakapacker/verify_install.rake +4 -0
- data/lib/tasks/shakapacker/yarn_install.rake +24 -0
- data/lib/tasks/shakapacker.rake +18 -0
- data/lib/tasks/webpacker/binstubs.rake +5 -11
- data/lib/tasks/webpacker/check_binstubs.rake +6 -9
- data/lib/tasks/webpacker/check_node.rake +5 -27
- data/lib/tasks/webpacker/check_yarn.rake +5 -29
- data/lib/tasks/webpacker/clean.rake +5 -19
- data/lib/tasks/webpacker/clobber.rake +6 -13
- data/lib/tasks/webpacker/compile.rake +5 -33
- data/lib/tasks/webpacker/info.rake +5 -17
- data/lib/tasks/webpacker/install.rake +5 -13
- data/lib/tasks/webpacker/verify_config.rake +6 -11
- data/lib/tasks/webpacker/verify_install.rake +7 -2
- data/lib/tasks/webpacker/yarn_install.rake +5 -20
- data/lib/tasks/webpacker.rake +15 -13
- data/lib/webpacker/dev_server_runner.rb +9 -96
- data/lib/webpacker/webpack_runner.rb +9 -58
- data/lib/webpacker.rb +3 -47
- data/package/__tests__/config-bc.js +27 -0
- data/package/__tests__/config.js +6 -5
- data/package/__tests__/dev_server-bc.js +46 -0
- data/package/__tests__/dev_server.js +9 -8
- data/package/__tests__/development-bc.js +66 -0
- data/package/__tests__/development.js +36 -5
- data/package/__tests__/env-bc.js +59 -0
- data/package/__tests__/env.js +3 -2
- data/package/__tests__/index.js +13 -0
- data/package/__tests__/production-bc.js +51 -0
- data/package/__tests__/production.js +25 -3
- data/package/__tests__/staging-bc.js +53 -0
- data/package/__tests__/staging.js +27 -4
- data/package/__tests__/test-bc.js +43 -0
- data/package/__tests__/test.js +22 -4
- data/package/babel/preset.js +1 -4
- data/package/config.js +25 -7
- data/package/dev_server.js +7 -4
- data/package/env.js +22 -3
- data/package/environments/__tests__/base-bc.js +107 -0
- data/package/environments/__tests__/base.js +13 -13
- data/package/environments/base.js +1 -1
- data/package/environments/development.js +4 -46
- data/package/environments/production.js +1 -1
- data/package/index.js +11 -4
- data/package/rules/__tests__/__utils__/webpack.js +1 -1
- data/package/rules/__tests__/file.js +27 -0
- data/package/rules/__tests__/swc.js +1 -2
- data/package/rules/file.js +2 -2
- data/package/utils/configPath.js +19 -0
- data/package/utils/defaultConfigPath.js +2 -0
- data/package/utils/get_style_rule.js +5 -2
- data/package/utils/helpers.js +24 -1
- data/package/utils/inliningCss.js +7 -0
- data/package/utils/snakeToCamelCase +7 -0
- data/package/webpackDevServerConfig.js +68 -0
- data/package.json +2 -2
- data/{webpacker.gemspec → shakapacker.gemspec} +3 -3
- data/spec/backward_compatibility_specs/command_spec_bc.rb +116 -0
- data/spec/backward_compatibility_specs/compiler_spec_bc.rb +59 -0
- data/spec/backward_compatibility_specs/compiler_strategy_spec_bc.rb +22 -0
- data/spec/backward_compatibility_specs/configuration_spec_bc.rb +286 -0
- data/spec/backward_compatibility_specs/dev_server_runner_spec_bc.rb +79 -0
- data/spec/backward_compatibility_specs/dev_server_spec_bc.rb +47 -0
- data/spec/backward_compatibility_specs/digest_strategy_spec_bc.rb +35 -0
- data/spec/backward_compatibility_specs/engine_rake_tasks_spec_bc.rb +44 -0
- data/spec/backward_compatibility_specs/env_spec_bc.rb +23 -0
- data/spec/backward_compatibility_specs/helper_spec_bc.rb +243 -0
- data/spec/backward_compatibility_specs/instance_spec_bc.rb +31 -0
- data/spec/backward_compatibility_specs/manifest_spec_bc.rb +100 -0
- data/spec/backward_compatibility_specs/mtime_strategy_spec_bc.rb +55 -0
- data/spec/backward_compatibility_specs/rake_tasks_spec_bc.rb +37 -0
- data/spec/backward_compatibility_specs/spec_helper_initializer.rb +24 -0
- data/spec/backward_compatibility_specs/webpack_runner_spec_bc.rb +56 -0
- data/spec/backward_compatibility_specs/webpacker_spec_bc.rb +41 -0
- data/spec/backward_compatibility_specs/webpacker_test_app/.gitignore +2 -0
- data/spec/backward_compatibility_specs/webpacker_test_app/Rakefile +3 -0
- data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/app/packs/entrypoints/application.js +1 -1
- data/{lib/install → spec/backward_compatibility_specs/webpacker_test_app}/bin/webpacker +0 -0
- data/spec/backward_compatibility_specs/webpacker_test_app/config/application.rb +11 -0
- data/spec/backward_compatibility_specs/webpacker_test_app/config/environment.rb +4 -0
- data/spec/backward_compatibility_specs/webpacker_test_app/config/initializers/inspect_autoload_paths.rb +1 -0
- data/spec/backward_compatibility_specs/webpacker_test_app/config/webpack/webpack.config.js +0 -0
- data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/config/webpacker.yml +1 -1
- data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/config/webpacker_css_extract_ignore_order_warnings.yml +1 -1
- data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/config/webpacker_defaults_fallback.yml +1 -1
- data/spec/backward_compatibility_specs/webpacker_test_app/config/webpacker_no_precompile.yml +7 -0
- data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/config/webpacker_other_location.yml +1 -1
- data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/config/webpacker_public_root.yml +1 -1
- data/spec/backward_compatibility_specs/webpacker_test_app/config.ru +5 -0
- data/spec/backward_compatibility_specs/webpacker_test_app/package.json +13 -0
- data/spec/backward_compatibility_specs/webpacker_test_app/public/packs/manifest.json +58 -0
- data/spec/backward_compatibility_specs/webpacker_test_app/some.config.js +0 -0
- data/spec/backward_compatibility_specs/webpacker_test_app/tmp/shakapacker/last-compilation-digest-production +1 -0
- data/spec/backward_compatibility_specs/webpacker_test_app/yarn.lock +11 -0
- data/spec/command_spec.rb +18 -16
- data/spec/compiler_spec.rb +19 -17
- data/spec/compiler_strategy_spec.rb +9 -7
- data/spec/configuration_spec.rb +108 -66
- data/spec/dev_server_runner_spec.rb +9 -8
- data/spec/dev_server_spec.rb +97 -9
- data/spec/digest_strategy_spec.rb +4 -2
- data/spec/engine_rake_tasks_spec.rb +12 -16
- data/spec/env_spec.rb +7 -5
- data/spec/helper_spec.rb +4 -2
- data/spec/instance_spec.rb +31 -0
- data/spec/manifest_spec.rb +21 -19
- data/spec/mounted_app/test/dummy/config/application.rb +1 -1
- data/spec/mounted_app/test/dummy/config/webpacker.yml +3 -3
- data/spec/mtime_strategy_spec.rb +4 -2
- data/spec/rake_tasks_spec.rb +20 -18
- data/spec/spec_helper.rb +0 -25
- data/spec/spec_helper_initializer.rb +24 -0
- data/spec/test_app/.gitignore +2 -0
- data/spec/test_app/app/javascript/entrypoints/application.js +10 -0
- data/spec/test_app/app/javascript/entrypoints/generated/something.js +2 -0
- data/spec/test_app/app/javascript/entrypoints/multi_entry.css +4 -0
- data/spec/test_app/app/javascript/entrypoints/multi_entry.js +4 -0
- data/spec/test_app/bin/{webpacker-dev-server → shakapacker} +3 -3
- data/spec/test_app/bin/{webpacker → shakapacker-dev-server} +3 -3
- data/spec/test_app/config/application.rb +1 -1
- data/spec/test_app/config/shakapacker.yml +82 -0
- data/spec/test_app/config/shakapacker_css_extract_ignore_order_warnings.yml +84 -0
- data/spec/test_app/config/shakapacker_defaults_fallback.yml +11 -0
- data/spec/test_app/config/shakapacker_manifest_path.yml +80 -0
- data/spec/test_app/config/shakapacker_nested_entries.yml +83 -0
- data/spec/test_app/config/shakapacker_no_precompile.yml +7 -0
- data/spec/test_app/config/shakapacker_other_location.yml +85 -0
- data/spec/test_app/config/shakapacker_public_root.yml +18 -0
- data/spec/version_checker_spec.rb +16 -15
- data/spec/webpack_runner_spec.rb +4 -3
- data/spec/webpacker_spec.rb +9 -29
- metadata +119 -44
- data/config/webpacker.yml +0 -1
- data/lib/webpacker/railtie.rb +0 -70
- data/lib/webpacker/runner.rb +0 -23
- data/package/configPath.js +0 -3
- data/package/inliningCss.js +0 -7
- data/spec/test_app/config/webpacker_no_precompile.yml +0 -7
- /data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/app/packs/entrypoints/generated/something.js +0 -0
- /data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/app/packs/entrypoints/multi_entry.css +0 -0
- /data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/app/packs/entrypoints/multi_entry.js +0 -0
- /data/{lib/install → spec/backward_compatibility_specs/webpacker_test_app}/bin/webpacker-dev-server +0 -0
- /data/spec/{test_app → backward_compatibility_specs/webpacker_test_app}/config/webpacker_manifest_path.yml +0 -0
- /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,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
|
-
|
|
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 =
|
|
24
|
-
version_checker =
|
|
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(
|
|
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(/
|
|
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(/
|
|
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\*\*
|
|
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\*\*
|
|
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\*\*
|
|
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\*\*
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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__),
|
data/spec/webpack_runner_spec.rb
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
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 =
|
|
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(
|
|
51
|
+
expect(Kernel).to have_received(:exec).with(Shakapacker::Compiler.env, *cmd)
|
|
51
52
|
ensure
|
|
52
53
|
Dir.chdir(cwd)
|
|
53
54
|
end
|
data/spec/webpacker_spec.rb
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
require_relative "spec_helper_initializer"
|
|
2
|
+
|
|
3
|
+
describe "Shakapacker" do
|
|
2
4
|
describe "#inline_css?" do
|
|
3
|
-
let(:dev_server) { instance_double("
|
|
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(
|
|
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(
|
|
23
|
+
allow(Shakapacker.instance).to receive(:dev_server).and_return(dev_server)
|
|
22
24
|
|
|
23
|
-
expect(
|
|
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(
|
|
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
|
-
|
|
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
|
|