vite_ruby 1.2.10 → 1.2.15
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 +38 -0
- data/lib/vite_ruby.rb +15 -7
- data/lib/vite_ruby/cli/build.rb +3 -15
- data/lib/vite_ruby/cli/dev.rb +1 -1
- data/lib/vite_ruby/cli/file_utils.rb +123 -0
- data/lib/vite_ruby/cli/install.rb +12 -5
- data/lib/vite_ruby/cli/vite.rb +20 -0
- data/lib/vite_ruby/missing_executable_error.rb +1 -1
- data/lib/vite_ruby/version.rb +1 -1
- metadata +9 -49
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2cc7ebe04b31db44eb45cc8c61275d09035b9496e2bb9b818909d101088b304f
|
4
|
+
data.tar.gz: e5318e9fc71a89e68e707e0edf2a679b31163566f7a61478cf95b18698289b54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f187d6b794b600e55ca88d1068900afdddd14652bd2b65661ce0478ed01a296c81348cea83d7a8a049a500107be431d0c6d22c781f9be9062bfe085090295ea9
|
7
|
+
data.tar.gz: df568548b57a23881f41c54388c41c46cb3da6f174463adc26e82c5998f9f76e552c3dfbd5b361345469b65ef03dbd465ed49297fa1c09c0f0783c16db6a3f1a
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,41 @@
|
|
1
|
+
## [1.2.15](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@1.2.14...vite_ruby@1.2.15) (2021-07-01)
|
2
|
+
|
3
|
+
|
4
|
+
|
5
|
+
## [1.2.14](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@1.2.13...vite_ruby@1.2.14) (2021-07-01)
|
6
|
+
|
7
|
+
|
8
|
+
### Features
|
9
|
+
|
10
|
+
* Add support for Jekyll installer ([7b942ec](https://github.com/ElMassimo/vite_ruby/commit/7b942ec745eb28092d684056b02df675ad6ececa))
|
11
|
+
|
12
|
+
|
13
|
+
|
14
|
+
## [1.2.13](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@1.2.12...vite_ruby@1.2.13) (2021-06-30)
|
15
|
+
|
16
|
+
|
17
|
+
### Features
|
18
|
+
|
19
|
+
* Improve the error message when npm packages are missing ([9159557](https://github.com/ElMassimo/vite_ruby/commit/9159557e5152547554cfe519fae8dbefe26686fb))
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
## [1.2.12](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@1.2.11...vite_ruby@1.2.12) (2021-06-08)
|
24
|
+
|
25
|
+
|
26
|
+
### Features
|
27
|
+
|
28
|
+
* Support Ruby 2.4 ([#87](https://github.com/ElMassimo/vite_ruby/issues/87)) ([8fc4d49](https://github.com/ElMassimo/vite_ruby/commit/8fc4d49c82817623df81d6f9f94654ea726eb050))
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
## [1.2.11](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@1.2.10...vite_ruby@1.2.11) (2021-05-10)
|
33
|
+
|
34
|
+
### Refactor
|
35
|
+
|
36
|
+
* Upgrade to dry-cli 0.7 while avoiding dependency on `dry-files` ([f5b87e](https://github.com/ElMassimo/vite_ruby/commit/f5b87e69790e48397d15e609b44118e399c9493d))
|
37
|
+
|
38
|
+
|
1
39
|
## [1.2.10](https://github.com/ElMassimo/vite_ruby/compare/vite_ruby@1.2.9...vite_ruby@1.2.10) (2021-05-09)
|
2
40
|
|
3
41
|
|
data/lib/vite_ruby.rb
CHANGED
@@ -18,11 +18,19 @@ class ViteRuby
|
|
18
18
|
ENV_PREFIX = 'VITE_RUBY'
|
19
19
|
|
20
20
|
# Internal: Versions used by default when running `vite install`.
|
21
|
-
DEFAULT_VITE_VERSION = '^2.
|
22
|
-
DEFAULT_PLUGIN_VERSION = '^2.0.
|
23
|
-
|
24
|
-
# Internal:
|
25
|
-
|
21
|
+
DEFAULT_VITE_VERSION = '^2.3.8'
|
22
|
+
DEFAULT_PLUGIN_VERSION = '^2.0.4'
|
23
|
+
|
24
|
+
# Internal: Companion libraries for Vite Ruby, and their target framework.
|
25
|
+
COMPANION_LIBRARIES = {
|
26
|
+
'vite_rails' => 'rails',
|
27
|
+
'vite_hanami' => 'hanami',
|
28
|
+
'vite_roda' => 'roda',
|
29
|
+
'vite_padrino' => 'padrino',
|
30
|
+
'vite_sinatra' => 'sinatra',
|
31
|
+
'jekyll-vite' => 'jekyll',
|
32
|
+
'vite_rails_legacy' => 'rails',
|
33
|
+
}
|
26
34
|
|
27
35
|
class << self
|
28
36
|
extend Forwardable
|
@@ -72,8 +80,8 @@ class ViteRuby
|
|
72
80
|
# Internal: Detects if the application has installed a framework-specific
|
73
81
|
# variant of Vite Ruby.
|
74
82
|
def framework_libraries
|
75
|
-
|
76
|
-
if library = Gem.loaded_specs[
|
83
|
+
COMPANION_LIBRARIES.map { |name, framework|
|
84
|
+
if library = Gem.loaded_specs[name]
|
77
85
|
[framework, library]
|
78
86
|
end
|
79
87
|
}.compact
|
data/lib/vite_ruby/cli/build.rb
CHANGED
@@ -1,25 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
class ViteRuby::CLI::Build <
|
4
|
-
CURRENT_ENV = ENV['RACK_ENV'] || ENV['RAILS_ENV']
|
3
|
+
class ViteRuby::CLI::Build < ViteRuby::CLI::Vite
|
5
4
|
DEFAULT_ENV = CURRENT_ENV || 'production'
|
6
5
|
|
7
|
-
def self.shared_options
|
8
|
-
option(:mode, default: self::DEFAULT_ENV, values: %w[development production test], aliases: ['m'], desc: 'The build mode for Vite')
|
9
|
-
option(:clobber, desc: 'Clear cache and previous builds', type: :boolean, aliases: %w[clean clear])
|
10
|
-
option(:debug, desc: 'Run Vite in verbose mode, printing all debugging output', aliases: ['verbose'], type: :boolean)
|
11
|
-
option(:inspect, desc: 'Run Vite in a debugging session with node --inspect-brk', aliases: ['inspect-brk'], type: :boolean)
|
12
|
-
option(:trace_deprecation, desc: 'Run Vite in debugging mode with node --trace-deprecation', aliases: ['trace-deprecation'], type: :boolean)
|
13
|
-
end
|
14
|
-
|
15
6
|
desc 'Bundle all entrypoints using Vite.'
|
16
7
|
shared_options
|
17
8
|
option(:force, desc: 'Force the build even if assets have not changed', type: :boolean)
|
18
9
|
|
19
|
-
def call(
|
20
|
-
ViteRuby.
|
21
|
-
ViteRuby.commands.clobber if clobber
|
22
|
-
boolean_opts.map { |name, value| args << "--#{ name }" if value }
|
23
|
-
block_given? ? yield(args) : ViteRuby.commands.build_from_task(*args)
|
10
|
+
def call(**options)
|
11
|
+
super { |args| ViteRuby.commands.build_from_task(*args) }
|
24
12
|
end
|
25
13
|
end
|
data/lib/vite_ruby/cli/dev.rb
CHANGED
@@ -0,0 +1,123 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'pathname'
|
4
|
+
require 'fileutils'
|
5
|
+
|
6
|
+
# NOTE: Extracted from dry-cli version 0.6.0, which later removed this file as
|
7
|
+
# it was refactored and extracted into the more complete (and complex) dry-files.
|
8
|
+
module ViteRuby::CLI::FileUtils
|
9
|
+
class << self
|
10
|
+
# Creates a new file or rewrites the contents of an existing file.
|
11
|
+
#
|
12
|
+
# @since 1.2.11
|
13
|
+
# @api private
|
14
|
+
def write(path, *content)
|
15
|
+
mkdir_p(path)
|
16
|
+
File.open(path, File::CREAT | File::WRONLY | File::TRUNC) do |file|
|
17
|
+
file.write(Array(content).flatten.join)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# Copies source into destination.
|
22
|
+
#
|
23
|
+
# @since 1.2.11
|
24
|
+
# @api private
|
25
|
+
def cp(source, destination)
|
26
|
+
mkdir_p(destination)
|
27
|
+
FileUtils.cp(source, destination)
|
28
|
+
end
|
29
|
+
|
30
|
+
# Adds a new line at the bottom of the file.
|
31
|
+
#
|
32
|
+
# @since 1.2.11
|
33
|
+
# @api private
|
34
|
+
def append(path, contents)
|
35
|
+
mkdir_p(path)
|
36
|
+
|
37
|
+
content = File.readlines(path)
|
38
|
+
content << "\n" unless content.last.end_with?("\n")
|
39
|
+
content << "#{ contents }\n"
|
40
|
+
|
41
|
+
write(path, content)
|
42
|
+
end
|
43
|
+
|
44
|
+
# Replace first line in `path` that contains `target` with `replacement`.
|
45
|
+
#
|
46
|
+
# @since 1.2.11
|
47
|
+
# @api private
|
48
|
+
def replace_first_line(path, target, replacement)
|
49
|
+
content = File.readlines(path)
|
50
|
+
content[index(content, path, target)] = "#{ replacement }\n"
|
51
|
+
|
52
|
+
write(path, content)
|
53
|
+
end
|
54
|
+
|
55
|
+
# Inject `contents` in `path` before `target`.
|
56
|
+
#
|
57
|
+
# @since 1.2.11
|
58
|
+
# @api private
|
59
|
+
def inject_line_before(path, target, contents)
|
60
|
+
_inject_line_before(path, target, contents, method(:index))
|
61
|
+
end
|
62
|
+
|
63
|
+
# Inject `contents` in `path` after `target`.
|
64
|
+
#
|
65
|
+
# @since 1.2.11
|
66
|
+
# @api private
|
67
|
+
def inject_line_after(path, target, contents)
|
68
|
+
_inject_line_after(path, target, contents, method(:index))
|
69
|
+
end
|
70
|
+
|
71
|
+
# Inject `contents` in `path` after last `target`.
|
72
|
+
#
|
73
|
+
# @since 1.2.11
|
74
|
+
# @api private
|
75
|
+
def inject_line_after_last(path, target, contents)
|
76
|
+
_inject_line_after(path, target, contents, method(:rindex))
|
77
|
+
end
|
78
|
+
|
79
|
+
private
|
80
|
+
|
81
|
+
# Creates all parent directories for the given file path.
|
82
|
+
#
|
83
|
+
# @since 1.2.11
|
84
|
+
# @api private
|
85
|
+
def mkdir_p(path)
|
86
|
+
Pathname.new(path).dirname.mkpath
|
87
|
+
end
|
88
|
+
|
89
|
+
# @since 1.2.11
|
90
|
+
# @api private
|
91
|
+
def index(content, path, target)
|
92
|
+
content.index { |line| line.include?(target) } ||
|
93
|
+
raise(ArgumentError, "Cannot find `#{ target }' inside `#{ path }'.")
|
94
|
+
end
|
95
|
+
|
96
|
+
# @since 1.2.11
|
97
|
+
# @api private
|
98
|
+
def rindex(content, path, target)
|
99
|
+
content.rindex { |line| line.include?(target) } ||
|
100
|
+
raise(ArgumentError, "Cannot find `#{ target }' inside `#{ path }'.")
|
101
|
+
end
|
102
|
+
|
103
|
+
# @since 1.2.11
|
104
|
+
# @api private
|
105
|
+
def _inject_line_before(path, target, contents, finder)
|
106
|
+
content = File.readlines(path)
|
107
|
+
i = finder.call(content, path, target)
|
108
|
+
|
109
|
+
content.insert(i, "#{ contents }\n")
|
110
|
+
write(path, content)
|
111
|
+
end
|
112
|
+
|
113
|
+
# @since 1.2.11
|
114
|
+
# @api private
|
115
|
+
def _inject_line_after(path, target, contents, finder)
|
116
|
+
content = File.readlines(path)
|
117
|
+
i = finder.call(content, path, target)
|
118
|
+
|
119
|
+
content.insert(i + 1, "#{ contents }\n")
|
120
|
+
write(path, content)
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
@@ -1,6 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'dry/cli/utils/files'
|
4
3
|
require 'stringio'
|
5
4
|
|
6
5
|
class ViteRuby::CLI::Install < Dry::CLI::Command
|
@@ -29,6 +28,14 @@ class ViteRuby::CLI::Install < Dry::CLI::Command
|
|
29
28
|
|
30
29
|
protected
|
31
30
|
|
31
|
+
# Internal: The JS packages that should be added to the app.
|
32
|
+
def js_dependencies
|
33
|
+
[
|
34
|
+
"vite@#{ ViteRuby::DEFAULT_VITE_VERSION }",
|
35
|
+
"vite-plugin-ruby@#{ ViteRuby::DEFAULT_PLUGIN_VERSION }",
|
36
|
+
]
|
37
|
+
end
|
38
|
+
|
32
39
|
# Internal: Setup for a plain Rack application.
|
33
40
|
def setup_app_files
|
34
41
|
copy_template 'config/vite.json', to: config.config_path
|
@@ -49,9 +56,9 @@ private
|
|
49
56
|
|
50
57
|
def_delegators 'ViteRuby', :config
|
51
58
|
|
52
|
-
%i[append cp inject_line_after inject_line_after_last inject_line_before write].each do |util|
|
59
|
+
%i[append cp inject_line_after inject_line_after_last inject_line_before replace_first_line write].each do |util|
|
53
60
|
define_method(util) { |*args|
|
54
|
-
|
61
|
+
ViteRuby::CLI::FileUtils.send(util, *args) rescue nil
|
55
62
|
}
|
56
63
|
end
|
57
64
|
|
@@ -74,7 +81,7 @@ private
|
|
74
81
|
write(package_json, '{}') unless package_json.exist?
|
75
82
|
|
76
83
|
Dir.chdir(root) do
|
77
|
-
deps =
|
84
|
+
deps = js_dependencies.join(' ')
|
78
85
|
_, stderr, status = ViteRuby::IO.capture("npx --package @antfu/ni -- ni -D #{ deps }", stdin_data: "\n")
|
79
86
|
_, stderr, = ViteRuby::IO.capture("yarn add -D #{ deps }") unless status.success?
|
80
87
|
say("Could not install JS dependencies.\n", stderr) unless stderr.to_s.empty?
|
@@ -118,5 +125,5 @@ end
|
|
118
125
|
|
119
126
|
# NOTE: This allows framework-specific variants to extend the installation.
|
120
127
|
ViteRuby.framework_libraries.each do |_framework, library|
|
121
|
-
require "#{ library.name }/installation"
|
128
|
+
require "#{ library.name.tr('-', '/') }/installation"
|
122
129
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class ViteRuby::CLI::Vite < Dry::CLI::Command
|
4
|
+
CURRENT_ENV = ENV['RACK_ENV'] || ENV['RAILS_ENV']
|
5
|
+
|
6
|
+
def self.shared_options
|
7
|
+
option(:mode, default: self::DEFAULT_ENV, values: %w[development production test], aliases: ['m'], desc: 'The build mode for Vite')
|
8
|
+
option(:clobber, desc: 'Clear cache and previous builds', type: :boolean, aliases: %w[clean clear])
|
9
|
+
option(:debug, desc: 'Run Vite in verbose mode, printing all debugging output', aliases: ['verbose'], type: :boolean)
|
10
|
+
option(:inspect, desc: 'Run Vite in a debugging session with node --inspect-brk', aliases: ['inspect-brk'], type: :boolean)
|
11
|
+
option(:trace_deprecation, desc: 'Run Vite in debugging mode with node --trace-deprecation', aliases: ['trace-deprecation'], type: :boolean)
|
12
|
+
end
|
13
|
+
|
14
|
+
def call(mode:, args: [], clobber: false, **boolean_opts)
|
15
|
+
ViteRuby.env['VITE_RUBY_MODE'] = mode
|
16
|
+
ViteRuby.commands.clobber if clobber
|
17
|
+
boolean_opts.map { |name, value| args << "--#{ name }" if value }
|
18
|
+
yield(args)
|
19
|
+
end
|
20
|
+
end
|
@@ -4,7 +4,7 @@
|
|
4
4
|
class ViteRuby::MissingExecutableError < ViteRuby::Error
|
5
5
|
def initialize(error = nil)
|
6
6
|
super <<~MSG
|
7
|
-
❌ The vite binary is not available. Have you installed
|
7
|
+
❌ The vite binary is not available. Have you installed the npm packages?
|
8
8
|
|
9
9
|
:troubleshooting:
|
10
10
|
#{ error }
|
data/lib/vite_ruby/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vite_ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.15
|
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: 2021-
|
11
|
+
date: 2021-07-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dry-cli
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.7.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.
|
26
|
+
version: 0.7.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rack-proxy
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,48 +142,6 @@ dependencies:
|
|
142
142
|
- - "~>"
|
143
143
|
- !ruby/object:Gem::Version
|
144
144
|
version: '13.0'
|
145
|
-
- !ruby/object:Gem::Dependency
|
146
|
-
name: rubocop
|
147
|
-
requirement: !ruby/object:Gem::Requirement
|
148
|
-
requirements:
|
149
|
-
- - "~>"
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
version: '1.9'
|
152
|
-
type: :development
|
153
|
-
prerelease: false
|
154
|
-
version_requirements: !ruby/object:Gem::Requirement
|
155
|
-
requirements:
|
156
|
-
- - "~>"
|
157
|
-
- !ruby/object:Gem::Version
|
158
|
-
version: '1.9'
|
159
|
-
- !ruby/object:Gem::Dependency
|
160
|
-
name: rubocop-minitest
|
161
|
-
requirement: !ruby/object:Gem::Requirement
|
162
|
-
requirements:
|
163
|
-
- - "~>"
|
164
|
-
- !ruby/object:Gem::Version
|
165
|
-
version: '0.10'
|
166
|
-
type: :development
|
167
|
-
prerelease: false
|
168
|
-
version_requirements: !ruby/object:Gem::Requirement
|
169
|
-
requirements:
|
170
|
-
- - "~>"
|
171
|
-
- !ruby/object:Gem::Version
|
172
|
-
version: '0.10'
|
173
|
-
- !ruby/object:Gem::Dependency
|
174
|
-
name: rubocop-performance
|
175
|
-
requirement: !ruby/object:Gem::Requirement
|
176
|
-
requirements:
|
177
|
-
- - "~>"
|
178
|
-
- !ruby/object:Gem::Version
|
179
|
-
version: '1.9'
|
180
|
-
type: :development
|
181
|
-
prerelease: false
|
182
|
-
version_requirements: !ruby/object:Gem::Requirement
|
183
|
-
requirements:
|
184
|
-
- - "~>"
|
185
|
-
- !ruby/object:Gem::Version
|
186
|
-
version: '1.9'
|
187
145
|
- !ruby/object:Gem::Dependency
|
188
146
|
name: simplecov
|
189
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -219,8 +177,10 @@ files:
|
|
219
177
|
- lib/vite_ruby/cli/build.rb
|
220
178
|
- lib/vite_ruby/cli/clobber.rb
|
221
179
|
- lib/vite_ruby/cli/dev.rb
|
180
|
+
- lib/vite_ruby/cli/file_utils.rb
|
222
181
|
- lib/vite_ruby/cli/install.rb
|
223
182
|
- lib/vite_ruby/cli/version.rb
|
183
|
+
- lib/vite_ruby/cli/vite.rb
|
224
184
|
- lib/vite_ruby/commands.rb
|
225
185
|
- lib/vite_ruby/config.rb
|
226
186
|
- lib/vite_ruby/dev_server_proxy.rb
|
@@ -238,8 +198,8 @@ homepage: https://github.com/ElMassimo/vite_ruby
|
|
238
198
|
licenses:
|
239
199
|
- MIT
|
240
200
|
metadata:
|
241
|
-
source_code_uri: https://github.com/ElMassimo/vite_ruby/tree/vite_ruby@1.2.
|
242
|
-
changelog_uri: https://github.com/ElMassimo/vite_ruby/blob/vite_ruby@1.2.
|
201
|
+
source_code_uri: https://github.com/ElMassimo/vite_ruby/tree/vite_ruby@1.2.15/vite_ruby
|
202
|
+
changelog_uri: https://github.com/ElMassimo/vite_ruby/blob/vite_ruby@1.2.15/vite_ruby/CHANGELOG.md
|
243
203
|
post_install_message:
|
244
204
|
rdoc_options: []
|
245
205
|
require_paths:
|
@@ -248,7 +208,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
248
208
|
requirements:
|
249
209
|
- - ">="
|
250
210
|
- !ruby/object:Gem::Version
|
251
|
-
version: '2.
|
211
|
+
version: '2.4'
|
252
212
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
253
213
|
requirements:
|
254
214
|
- - ">="
|