vite_ruby 3.8.2 → 4.0.0.alpha1
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/CHANGELOG.md +2 -382
- data/README.md +1 -1
- data/default.vite.json +2 -7
- data/exe/vite +0 -2
- data/lib/tasks/vite.rake +12 -49
- data/lib/vite_ruby/build.rb +16 -46
- data/lib/vite_ruby/builder.rb +26 -21
- data/lib/vite_ruby/cli/build.rb +0 -2
- data/lib/vite_ruby/cli/install.rb +19 -24
- data/lib/vite_ruby/cli/upgrade_packages.rb +2 -1
- data/lib/vite_ruby/cli/vite.rb +4 -19
- data/lib/vite_ruby/cli.rb +0 -13
- data/lib/vite_ruby/commands.rb +61 -16
- data/lib/vite_ruby/compatibility_check.rb +1 -1
- data/lib/vite_ruby/config.rb +12 -45
- data/lib/vite_ruby/dev_server_proxy.rb +5 -10
- data/lib/vite_ruby/io.rb +1 -1
- data/lib/vite_ruby/manifest.rb +17 -29
- data/lib/vite_ruby/missing_entrypoint_error.rb +13 -21
- data/lib/vite_ruby/runner.rb +10 -18
- data/lib/vite_ruby/version.rb +3 -3
- data/lib/vite_ruby.rb +11 -26
- metadata +12 -19
- data/lib/vite_ruby/cli/ssr.rb +0 -27
@@ -5,39 +5,31 @@
|
|
5
5
|
# NOTE: The complexity here is justified by the improved usability of providing
|
6
6
|
# a more specific error message depending on the situation.
|
7
7
|
class ViteRuby::MissingEntrypointError < ViteRuby::Error
|
8
|
-
|
8
|
+
extend Forwardable
|
9
|
+
def_delegators :@info, :file_name, :last_build, :manifest, :config
|
9
10
|
|
10
|
-
def initialize(
|
11
|
-
@
|
11
|
+
def initialize(info)
|
12
|
+
@info = info
|
12
13
|
super <<~MSG
|
13
|
-
Vite Ruby can't find #{ file_name } in
|
14
|
+
Vite Ruby can't find #{ file_name } in #{ config.manifest_path.relative_path_from(config.root) } or #{ config.assets_manifest_path.relative_path_from(config.root) }.
|
14
15
|
|
15
16
|
Possible causes:
|
16
17
|
#{ possible_causes(last_build) }
|
17
18
|
:troubleshooting:
|
18
|
-
#{ "
|
19
|
-
#{ "
|
20
|
-
#{ "Last build in #{ config.mode } mode:\n#{ last_build.to_json }\n" if last_build.success }
|
19
|
+
#{ "\nContent in your manifests:\n#{ JSON.pretty_generate(manifest) }\n" if last_build.success }
|
20
|
+
#{ "Last build in #{ config.mode } mode:\n#{ last_build.to_json }\n" unless last_build.success.nil? }
|
21
21
|
MSG
|
22
22
|
end
|
23
23
|
|
24
24
|
def possible_causes(last_build)
|
25
|
-
if last_build.success == false
|
26
|
-
|
27
|
-
.sub(':mode:', config.mode)
|
28
|
-
.sub(':errors:', last_build.errors.to_s.gsub(/^(?!$)/, ' '))
|
29
|
-
elsif config.auto_build
|
30
|
-
DEFAULT_CAUSES
|
31
|
-
else
|
32
|
-
DEFAULT_CAUSES + NO_AUTO_BUILD_CAUSES
|
33
|
-
end
|
34
|
-
end
|
25
|
+
return FAILED_BUILD_CAUSES.sub(':mode:', config.mode) if last_build.success == false
|
26
|
+
return DEFAULT_CAUSES if config.auto_build
|
35
27
|
|
36
|
-
|
37
|
-
|
28
|
+
DEFAULT_CAUSES + NO_AUTO_BUILD_CAUSES
|
29
|
+
end
|
38
30
|
|
39
|
-
|
40
|
-
|
31
|
+
FAILED_BUILD_CAUSES = <<-MSG
|
32
|
+
- The last build failed. Try running `bin/vite build --clear --mode=:mode:` manually and check for errors.
|
41
33
|
MSG
|
42
34
|
|
43
35
|
DEFAULT_CAUSES = <<-MSG
|
data/lib/vite_ruby/runner.rb
CHANGED
@@ -8,7 +8,7 @@ class ViteRuby::Runner
|
|
8
8
|
|
9
9
|
# Public: Executes Vite with the specified arguments.
|
10
10
|
def run(argv, exec: false)
|
11
|
-
config.
|
11
|
+
Dir.chdir(config.root) {
|
12
12
|
cmd = command_for(argv)
|
13
13
|
return Kernel.exec(*cmd) if exec
|
14
14
|
|
@@ -23,31 +23,23 @@ private
|
|
23
23
|
|
24
24
|
extend Forwardable
|
25
25
|
|
26
|
-
def_delegators :@vite_ruby, :config, :logger
|
26
|
+
def_delegators :@vite_ruby, :config, :logger
|
27
27
|
|
28
28
|
# Internal: Returns an Array with the command to run.
|
29
29
|
def command_for(args)
|
30
|
-
[config.to_env
|
31
|
-
|
32
|
-
cmd.push(
|
33
|
-
cmd.push(
|
30
|
+
[config.to_env].tap do |cmd|
|
31
|
+
args = args.clone
|
32
|
+
cmd.push('node', '--inspect-brk') if args.delete('--inspect')
|
33
|
+
cmd.push('node', '--trace-deprecation') if args.delete('--trace_deprecation')
|
34
|
+
cmd.push(vite_executable)
|
35
|
+
cmd.push(*args)
|
34
36
|
cmd.push('--mode', config.mode) unless args.include?('--mode') || args.include?('-m')
|
35
37
|
end
|
36
38
|
end
|
37
39
|
|
38
40
|
# Internal: Resolves to an executable for Vite.
|
39
|
-
def vite_executable
|
41
|
+
def vite_executable
|
40
42
|
bin_path = config.vite_bin_path
|
41
|
-
|
42
|
-
|
43
|
-
x = case config.package_manager
|
44
|
-
when 'npm' then %w[npx]
|
45
|
-
when 'pnpm' then %w[pnpm exec]
|
46
|
-
when 'bun' then %w[bun x --bun]
|
47
|
-
when 'yarn' then %w[yarn]
|
48
|
-
else raise ArgumentError, "Unknown package manager #{ config.package_manager.inspect }"
|
49
|
-
end
|
50
|
-
|
51
|
-
[*x, *exec_args, 'vite']
|
43
|
+
File.exist?(bin_path) ? bin_path : "#{ `npm bin`.chomp }/vite"
|
52
44
|
end
|
53
45
|
end
|
data/lib/vite_ruby/version.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class ViteRuby
|
4
|
-
VERSION = '
|
4
|
+
VERSION = '4.0.0.alpha1'
|
5
5
|
|
6
6
|
# Internal: Versions used by default when running `vite install`.
|
7
|
-
DEFAULT_VITE_VERSION = '^
|
8
|
-
DEFAULT_PLUGIN_VERSION = '^
|
7
|
+
DEFAULT_VITE_VERSION = '^2.7.7'
|
8
|
+
DEFAULT_PLUGIN_VERSION = '^3.0.5'
|
9
9
|
end
|
data/lib/vite_ruby.rb
CHANGED
@@ -11,10 +11,11 @@ loader.ignore("#{ __dir__ }/install")
|
|
11
11
|
loader.ignore("#{ __dir__ }/tasks")
|
12
12
|
loader.ignore("#{ __dir__ }/exe")
|
13
13
|
loader.inflector.inflect('cli' => 'CLI')
|
14
|
-
loader.inflector.inflect('ssr' => 'SSR')
|
15
14
|
loader.inflector.inflect('io' => 'IO')
|
16
15
|
loader.setup
|
17
16
|
|
17
|
+
require 'vite_ruby/version'
|
18
|
+
|
18
19
|
class ViteRuby
|
19
20
|
# Internal: Prefix used for environment variables that modify the configuration.
|
20
21
|
ENV_PREFIX = 'VITE_RUBY'
|
@@ -32,7 +33,7 @@ class ViteRuby
|
|
32
33
|
class << self
|
33
34
|
extend Forwardable
|
34
35
|
|
35
|
-
def_delegators :instance, :config, :
|
36
|
+
def_delegators :instance, :config, :commands, :env, :run, :run_proxy?
|
36
37
|
def_delegators :config, :mode
|
37
38
|
|
38
39
|
def instance
|
@@ -75,26 +76,17 @@ class ViteRuby
|
|
75
76
|
@logger ||= Logger.new($stdout)
|
76
77
|
end
|
77
78
|
|
78
|
-
# Public: Returns a digest of all the watched files, allowing to detect
|
79
|
-
# changes. Useful to perform version checks in single-page applications.
|
80
|
-
def digest
|
81
|
-
builder.send(:watched_files_digest)
|
82
|
-
end
|
83
|
-
|
84
79
|
# Public: Returns true if the Vite development server is currently running.
|
85
80
|
# NOTE: Checks only once every second since every lookup calls this method.
|
86
81
|
def dev_server_running?
|
87
82
|
return false unless run_proxy?
|
88
|
-
return
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
ensure
|
96
|
-
@running_checked_at = Time.now
|
97
|
-
end
|
83
|
+
return true if defined?(@running_at) && @running_at && Time.now - @running_at < 1
|
84
|
+
|
85
|
+
Socket.tcp(config.host, config.port, connect_timeout: config.dev_server_connect_timeout).close
|
86
|
+
@running_at = Time.now
|
87
|
+
true
|
88
|
+
rescue StandardError
|
89
|
+
@running_at = false
|
98
90
|
end
|
99
91
|
|
100
92
|
# Public: Additional environment variables to pass to Vite.
|
@@ -131,22 +123,15 @@ class ViteRuby
|
|
131
123
|
# Public: Current instance configuration for Vite.
|
132
124
|
def config
|
133
125
|
unless defined?(@config)
|
134
|
-
|
126
|
+
@config = ViteRuby::Config.resolve_config(**@config_options)
|
135
127
|
@config.load_ruby_config
|
136
128
|
end
|
137
129
|
|
138
130
|
@config
|
139
131
|
end
|
140
132
|
|
141
|
-
# Public: Allows overriding the configuration for this instance.
|
142
|
-
def configure(**options)
|
143
|
-
@config = ViteRuby::Config.resolve_config(**@config_options, **options)
|
144
|
-
end
|
145
|
-
|
146
133
|
# Public: Enables looking up assets managed by Vite using name and type.
|
147
134
|
def manifest
|
148
135
|
@manifest ||= ViteRuby::Manifest.new(self)
|
149
136
|
end
|
150
137
|
end
|
151
|
-
|
152
|
-
require 'vite_ruby/version'
|
metadata
CHANGED
@@ -1,35 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vite_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 4.0.0.alpha1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Máximo Mussini
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-01-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-cli
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0.7'
|
20
|
-
- - "<"
|
17
|
+
- - "~>"
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
19
|
+
version: 0.7.0
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- - "
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '0.7'
|
30
|
-
- - "<"
|
24
|
+
- - "~>"
|
31
25
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
26
|
+
version: 0.7.0
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: rack-proxy
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -185,7 +179,6 @@ files:
|
|
185
179
|
- lib/vite_ruby/cli/dev.rb
|
186
180
|
- lib/vite_ruby/cli/file_utils.rb
|
187
181
|
- lib/vite_ruby/cli/install.rb
|
188
|
-
- lib/vite_ruby/cli/ssr.rb
|
189
182
|
- lib/vite_ruby/cli/upgrade.rb
|
190
183
|
- lib/vite_ruby/cli/upgrade_packages.rb
|
191
184
|
- lib/vite_ruby/cli/version.rb
|
@@ -208,8 +201,8 @@ homepage: https://github.com/ElMassimo/vite_ruby
|
|
208
201
|
licenses:
|
209
202
|
- MIT
|
210
203
|
metadata:
|
211
|
-
source_code_uri: https://github.com/ElMassimo/vite_ruby/tree/vite_ruby@
|
212
|
-
changelog_uri: https://github.com/ElMassimo/vite_ruby/blob/vite_ruby@
|
204
|
+
source_code_uri: https://github.com/ElMassimo/vite_ruby/tree/vite_ruby@4.0.0.alpha1/vite_ruby
|
205
|
+
changelog_uri: https://github.com/ElMassimo/vite_ruby/blob/vite_ruby@4.0.0.alpha1/vite_ruby/CHANGELOG.md
|
213
206
|
post_install_message: "Thanks for installing Vite Ruby!\n\nIf you upgraded the gem
|
214
207
|
manually, please run:\n\tbundle exec vite upgrade"
|
215
208
|
rdoc_options: []
|
@@ -219,14 +212,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
219
212
|
requirements:
|
220
213
|
- - ">="
|
221
214
|
- !ruby/object:Gem::Version
|
222
|
-
version: '2.
|
215
|
+
version: '2.4'
|
223
216
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
224
217
|
requirements:
|
225
|
-
- - "
|
218
|
+
- - ">"
|
226
219
|
- !ruby/object:Gem::Version
|
227
|
-
version:
|
220
|
+
version: 1.3.1
|
228
221
|
requirements: []
|
229
|
-
rubygems_version: 3.
|
222
|
+
rubygems_version: 3.2.32
|
230
223
|
signing_key:
|
231
224
|
specification_version: 4
|
232
225
|
summary: Use Vite in Ruby and bring joy to your JavaScript experience
|
data/lib/vite_ruby/cli/ssr.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
class ViteRuby::CLI::SSR < ViteRuby::CLI::Vite
|
4
|
-
DEFAULT_ENV = CURRENT_ENV || 'production'
|
5
|
-
JS_EXTENSIONS = %w[js mjs cjs]
|
6
|
-
|
7
|
-
desc 'Run the resulting app from building in SSR mode.'
|
8
|
-
executable_options
|
9
|
-
|
10
|
-
def call(mode:, inspect: false, trace_deprecation: false)
|
11
|
-
ViteRuby.env['VITE_RUBY_MODE'] = mode
|
12
|
-
|
13
|
-
ssr_entrypoint = JS_EXTENSIONS
|
14
|
-
.map { |ext| ViteRuby.config.ssr_output_dir.join("ssr.#{ ext }") }
|
15
|
-
.find(&:exist?)
|
16
|
-
|
17
|
-
raise ArgumentError, "No ssr entrypoint found `#{ ViteRuby.config.ssr_output_dir.relative_path_from(ViteRuby.config.root) }/ssr.{#{ JS_EXTENSIONS.join(',') }}`. Have you run bin/vite build --ssr?" unless ssr_entrypoint
|
18
|
-
|
19
|
-
cmd = [
|
20
|
-
'node',
|
21
|
-
('--inspect-brk' if inspect),
|
22
|
-
('--trace-deprecation' if trace_deprecation),
|
23
|
-
ssr_entrypoint,
|
24
|
-
]
|
25
|
-
Kernel.exec(*cmd.compact.map(&:to_s))
|
26
|
-
end
|
27
|
-
end
|