vite_ruby 3.11.0 → 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 -511
- data/README.md +2 -2
- data/default.vite.json +2 -8
- data/exe/vite +3 -5
- data/lib/tasks/vite.rake +19 -56
- data/lib/vite_ruby/build.rb +17 -47
- data/lib/vite_ruby/builder.rb +35 -66
- data/lib/vite_ruby/cli/build.rb +4 -6
- data/lib/vite_ruby/cli/clobber.rb +4 -4
- data/lib/vite_ruby/cli/dev.rb +3 -3
- data/lib/vite_ruby/cli/file_utils.rb +9 -16
- data/lib/vite_ruby/cli/install.rb +42 -47
- data/lib/vite_ruby/cli/upgrade.rb +4 -4
- data/lib/vite_ruby/cli/upgrade_packages.rb +4 -3
- data/lib/vite_ruby/cli/version.rb +1 -1
- data/lib/vite_ruby/cli/vite.rb +9 -24
- data/lib/vite_ruby/cli.rb +8 -21
- data/lib/vite_ruby/commands.rb +75 -31
- data/lib/vite_ruby/compatibility_check.rb +8 -8
- data/lib/vite_ruby/config.rb +37 -76
- data/lib/vite_ruby/dev_server_proxy.rb +24 -31
- data/lib/vite_ruby/error.rb +1 -1
- data/lib/vite_ruby/io.rb +4 -4
- data/lib/vite_ruby/manifest.rb +32 -63
- data/lib/vite_ruby/missing_entrypoint_error.rb +14 -21
- data/lib/vite_ruby/missing_executable_error.rb +1 -1
- data/lib/vite_ruby/runner.rb +12 -20
- data/lib/vite_ruby/version.rb +3 -3
- data/lib/vite_ruby.rb +38 -76
- metadata +21 -48
- data/lib/vite_ruby/cli/ssr.rb +0 -27
data/lib/vite_ruby.rb
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require
|
|
4
|
-
require
|
|
5
|
-
require
|
|
6
|
-
require
|
|
7
|
-
require "socket"
|
|
3
|
+
require 'logger'
|
|
4
|
+
require 'forwardable'
|
|
5
|
+
require 'pathname'
|
|
6
|
+
require 'socket'
|
|
8
7
|
|
|
9
|
-
require
|
|
8
|
+
require 'zeitwerk'
|
|
10
9
|
loader = Zeitwerk::Loader.for_gem
|
|
11
|
-
loader.ignore("#{__dir__}/install")
|
|
12
|
-
loader.ignore("#{__dir__}/tasks")
|
|
13
|
-
loader.ignore("#{__dir__}/exe")
|
|
14
|
-
loader.inflector.inflect(
|
|
15
|
-
loader.inflector.inflect(
|
|
16
|
-
loader.inflector.inflect("io" => "IO")
|
|
10
|
+
loader.ignore("#{ __dir__ }/install")
|
|
11
|
+
loader.ignore("#{ __dir__ }/tasks")
|
|
12
|
+
loader.ignore("#{ __dir__ }/exe")
|
|
13
|
+
loader.inflector.inflect('cli' => 'CLI')
|
|
14
|
+
loader.inflector.inflect('io' => 'IO')
|
|
17
15
|
loader.setup
|
|
18
16
|
|
|
17
|
+
require 'vite_ruby/version'
|
|
18
|
+
|
|
19
19
|
class ViteRuby
|
|
20
20
|
# Internal: Prefix used for environment variables that modify the configuration.
|
|
21
|
-
ENV_PREFIX =
|
|
21
|
+
ENV_PREFIX = 'VITE_RUBY'
|
|
22
22
|
|
|
23
23
|
# Internal: Companion libraries for Vite Ruby, and their target framework.
|
|
24
24
|
COMPANION_LIBRARIES = {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
'vite_rails' => 'rails',
|
|
26
|
+
'vite_hanami' => 'hanami',
|
|
27
|
+
'vite_padrino' => 'padrino',
|
|
28
|
+
'jekyll-vite' => 'jekyll',
|
|
29
|
+
'vite_rails_legacy' => 'rails',
|
|
30
|
+
'vite_plugin_legacy' => 'rack',
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
class << self
|
|
34
34
|
extend Forwardable
|
|
35
35
|
|
|
36
|
-
def_delegators :instance, :config, :
|
|
36
|
+
def_delegators :instance, :config, :commands, :env, :run, :run_proxy?
|
|
37
37
|
def_delegators :config, :mode
|
|
38
38
|
|
|
39
39
|
def instance
|
|
@@ -47,7 +47,7 @@ class ViteRuby
|
|
|
47
47
|
|
|
48
48
|
# Internal: Loads all available rake tasks.
|
|
49
49
|
def install_tasks
|
|
50
|
-
load File.expand_path(
|
|
50
|
+
load File.expand_path('tasks/vite.rake', __dir__)
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
# Internal: Creates a new instance with the specified options.
|
|
@@ -58,11 +58,11 @@ class ViteRuby
|
|
|
58
58
|
# Internal: Detects if the application has installed a framework-specific
|
|
59
59
|
# variant of Vite Ruby.
|
|
60
60
|
def framework_libraries
|
|
61
|
-
COMPANION_LIBRARIES.
|
|
61
|
+
COMPANION_LIBRARIES.map { |name, framework|
|
|
62
62
|
if library = Gem.loaded_specs[name]
|
|
63
63
|
[framework, library]
|
|
64
64
|
end
|
|
65
|
-
}
|
|
65
|
+
}.compact
|
|
66
66
|
end
|
|
67
67
|
end
|
|
68
68
|
|
|
@@ -76,18 +76,17 @@ class ViteRuby
|
|
|
76
76
|
@logger ||= Logger.new($stdout)
|
|
77
77
|
end
|
|
78
78
|
|
|
79
|
-
# Public: Returns a digest of all the watched files, allowing to detect
|
|
80
|
-
# changes. Useful to perform version checks in single-page applications.
|
|
81
|
-
def digest
|
|
82
|
-
builder.send(:watched_files_digest)
|
|
83
|
-
end
|
|
84
|
-
|
|
85
79
|
# Public: Returns true if the Vite development server is currently running.
|
|
80
|
+
# NOTE: Checks only once every second since every lookup calls this method.
|
|
86
81
|
def dev_server_running?
|
|
87
|
-
return false unless
|
|
88
|
-
return
|
|
89
|
-
|
|
90
|
-
|
|
82
|
+
return false unless run_proxy?
|
|
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
|
|
91
90
|
end
|
|
92
91
|
|
|
93
92
|
# Public: Additional environment variables to pass to Vite.
|
|
@@ -98,15 +97,13 @@ class ViteRuby
|
|
|
98
97
|
@env ||= ENV.select { |key, _| key.start_with?(ENV_PREFIX) }
|
|
99
98
|
end
|
|
100
99
|
|
|
101
|
-
# Public:
|
|
102
|
-
def
|
|
103
|
-
config.mode ==
|
|
104
|
-
rescue => error
|
|
105
|
-
logger.error("Failed to check mode for Vite: #{error.message}")
|
|
100
|
+
# Public: The proxy for assets should only run in development mode.
|
|
101
|
+
def run_proxy?
|
|
102
|
+
config.mode == 'development' || (config.mode == 'test' && !ENV['CI'])
|
|
103
|
+
rescue StandardError => error
|
|
104
|
+
logger.error("Failed to check mode for Vite: #{ error.message }")
|
|
106
105
|
false
|
|
107
106
|
end
|
|
108
|
-
# Public: The proxy for assets should only run in development mode.
|
|
109
|
-
alias_method :run_proxy?, :dev_mode?
|
|
110
107
|
|
|
111
108
|
# Internal: Executes the vite binary.
|
|
112
109
|
def run(argv, **options)
|
|
@@ -126,50 +123,15 @@ class ViteRuby
|
|
|
126
123
|
# Public: Current instance configuration for Vite.
|
|
127
124
|
def config
|
|
128
125
|
unless defined?(@config)
|
|
129
|
-
|
|
126
|
+
@config = ViteRuby::Config.resolve_config(**@config_options)
|
|
130
127
|
@config.load_ruby_config
|
|
131
128
|
end
|
|
132
129
|
|
|
133
130
|
@config
|
|
134
131
|
end
|
|
135
132
|
|
|
136
|
-
# Public: Allows overriding the configuration for this instance.
|
|
137
|
-
def configure(**options)
|
|
138
|
-
@config = ViteRuby::Config.resolve_config(**@config_options, **options)
|
|
139
|
-
end
|
|
140
|
-
|
|
141
133
|
# Public: Enables looking up assets managed by Vite using name and type.
|
|
142
134
|
def manifest
|
|
143
135
|
@manifest ||= ViteRuby::Manifest.new(self)
|
|
144
136
|
end
|
|
145
|
-
|
|
146
|
-
private
|
|
147
|
-
|
|
148
|
-
# Internal: Returns true if a TCP connection to the dev server can be opened.
|
|
149
|
-
def dev_server_connected?
|
|
150
|
-
return @running if defined?(@running) && Time.now - @running_checked_at < 1
|
|
151
|
-
|
|
152
|
-
begin
|
|
153
|
-
Socket.tcp(config.host, config.port, connect_timeout: config.dev_server_connect_timeout).close
|
|
154
|
-
@running = true
|
|
155
|
-
rescue
|
|
156
|
-
@running = false
|
|
157
|
-
ensure
|
|
158
|
-
@running_checked_at = Time.now
|
|
159
|
-
end
|
|
160
|
-
end
|
|
161
|
-
|
|
162
|
-
# Internal: Metadata written by the running Vite dev server, or nil when stopped.
|
|
163
|
-
def dev_server_meta
|
|
164
|
-
return @dev_server_meta if defined?(@dev_server_meta) && Time.now - @dev_server_meta_checked_at < 1
|
|
165
|
-
|
|
166
|
-
path = config.dev_server_meta_path
|
|
167
|
-
@dev_server_meta = (JSON.parse(path.read) if path.exist?)
|
|
168
|
-
rescue JSON::ParserError, SystemCallError
|
|
169
|
-
@dev_server_meta = nil
|
|
170
|
-
ensure
|
|
171
|
-
@dev_server_meta_checked_at = Time.now
|
|
172
|
-
end
|
|
173
137
|
end
|
|
174
|
-
|
|
175
|
-
require "vite_ruby/version"
|
metadata
CHANGED
|
@@ -1,66 +1,36 @@
|
|
|
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
|
+
autorequire:
|
|
8
9
|
bindir: exe
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2022-01-18 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: dry-cli
|
|
14
|
-
requirement: !ruby/object:Gem::Requirement
|
|
15
|
-
requirements:
|
|
16
|
-
- - ">="
|
|
17
|
-
- !ruby/object:Gem::Version
|
|
18
|
-
version: '0.7'
|
|
19
|
-
- - "<"
|
|
20
|
-
- !ruby/object:Gem::Version
|
|
21
|
-
version: '2'
|
|
22
|
-
type: :runtime
|
|
23
|
-
prerelease: false
|
|
24
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
requirements:
|
|
26
|
-
- - ">="
|
|
27
|
-
- !ruby/object:Gem::Version
|
|
28
|
-
version: '0.7'
|
|
29
|
-
- - "<"
|
|
30
|
-
- !ruby/object:Gem::Version
|
|
31
|
-
version: '2'
|
|
32
|
-
- !ruby/object:Gem::Dependency
|
|
33
|
-
name: logger
|
|
34
15
|
requirement: !ruby/object:Gem::Requirement
|
|
35
16
|
requirements:
|
|
36
17
|
- - "~>"
|
|
37
18
|
- !ruby/object:Gem::Version
|
|
38
|
-
version:
|
|
19
|
+
version: 0.7.0
|
|
39
20
|
type: :runtime
|
|
40
21
|
prerelease: false
|
|
41
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
42
23
|
requirements:
|
|
43
24
|
- - "~>"
|
|
44
25
|
- !ruby/object:Gem::Version
|
|
45
|
-
version:
|
|
46
|
-
- !ruby/object:Gem::Dependency
|
|
47
|
-
name: mutex_m
|
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
|
49
|
-
requirements:
|
|
50
|
-
- - ">="
|
|
51
|
-
- !ruby/object:Gem::Version
|
|
52
|
-
version: '0'
|
|
53
|
-
type: :runtime
|
|
54
|
-
prerelease: false
|
|
55
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
56
|
-
requirements:
|
|
57
|
-
- - ">="
|
|
58
|
-
- !ruby/object:Gem::Version
|
|
59
|
-
version: '0'
|
|
26
|
+
version: 0.7.0
|
|
60
27
|
- !ruby/object:Gem::Dependency
|
|
61
28
|
name: rack-proxy
|
|
62
29
|
requirement: !ruby/object:Gem::Requirement
|
|
63
30
|
requirements:
|
|
31
|
+
- - "~>"
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: '0.6'
|
|
64
34
|
- - ">="
|
|
65
35
|
- !ruby/object:Gem::Version
|
|
66
36
|
version: 0.6.1
|
|
@@ -68,6 +38,9 @@ dependencies:
|
|
|
68
38
|
prerelease: false
|
|
69
39
|
version_requirements: !ruby/object:Gem::Requirement
|
|
70
40
|
requirements:
|
|
41
|
+
- - "~>"
|
|
42
|
+
- !ruby/object:Gem::Version
|
|
43
|
+
version: '0.6'
|
|
71
44
|
- - ">="
|
|
72
45
|
- !ruby/object:Gem::Version
|
|
73
46
|
version: 0.6.1
|
|
@@ -175,14 +148,15 @@ dependencies:
|
|
|
175
148
|
requirements:
|
|
176
149
|
- - "<"
|
|
177
150
|
- !ruby/object:Gem::Version
|
|
178
|
-
version: '0.
|
|
151
|
+
version: '0.18'
|
|
179
152
|
type: :development
|
|
180
153
|
prerelease: false
|
|
181
154
|
version_requirements: !ruby/object:Gem::Requirement
|
|
182
155
|
requirements:
|
|
183
156
|
- - "<"
|
|
184
157
|
- !ruby/object:Gem::Version
|
|
185
|
-
version: '0.
|
|
158
|
+
version: '0.18'
|
|
159
|
+
description:
|
|
186
160
|
email:
|
|
187
161
|
- maximomussini@gmail.com
|
|
188
162
|
executables:
|
|
@@ -205,7 +179,6 @@ files:
|
|
|
205
179
|
- lib/vite_ruby/cli/dev.rb
|
|
206
180
|
- lib/vite_ruby/cli/file_utils.rb
|
|
207
181
|
- lib/vite_ruby/cli/install.rb
|
|
208
|
-
- lib/vite_ruby/cli/ssr.rb
|
|
209
182
|
- lib/vite_ruby/cli/upgrade.rb
|
|
210
183
|
- lib/vite_ruby/cli/upgrade_packages.rb
|
|
211
184
|
- lib/vite_ruby/cli/version.rb
|
|
@@ -228,9 +201,8 @@ homepage: https://github.com/ElMassimo/vite_ruby
|
|
|
228
201
|
licenses:
|
|
229
202
|
- MIT
|
|
230
203
|
metadata:
|
|
231
|
-
source_code_uri: https://github.com/ElMassimo/vite_ruby/tree/vite_ruby@
|
|
232
|
-
changelog_uri: https://github.com/ElMassimo/vite_ruby/blob/vite_ruby@
|
|
233
|
-
rubygems_mfa_required: 'true'
|
|
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
|
|
234
206
|
post_install_message: "Thanks for installing Vite Ruby!\n\nIf you upgraded the gem
|
|
235
207
|
manually, please run:\n\tbundle exec vite upgrade"
|
|
236
208
|
rdoc_options: []
|
|
@@ -240,14 +212,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
240
212
|
requirements:
|
|
241
213
|
- - ">="
|
|
242
214
|
- !ruby/object:Gem::Version
|
|
243
|
-
version: '2.
|
|
215
|
+
version: '2.4'
|
|
244
216
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
245
217
|
requirements:
|
|
246
|
-
- - "
|
|
218
|
+
- - ">"
|
|
247
219
|
- !ruby/object:Gem::Version
|
|
248
|
-
version:
|
|
220
|
+
version: 1.3.1
|
|
249
221
|
requirements: []
|
|
250
|
-
rubygems_version:
|
|
222
|
+
rubygems_version: 3.2.32
|
|
223
|
+
signing_key:
|
|
251
224
|
specification_version: 4
|
|
252
225
|
summary: Use Vite in Ruby and bring joy to your JavaScript experience
|
|
253
226
|
test_files: []
|
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
|