vite_rails 1.0.6 → 1.0.11
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 +24 -0
- data/CONTRIBUTING.md +0 -1
- data/README.md +43 -70
- data/lib/install/config/vite.config.ts +1 -1
- data/lib/install/javascript/entrypoints/application.js +8 -4
- data/lib/install/template.rb +3 -3
- data/lib/tasks/vite/build.rake +12 -6
- data/lib/tasks/vite/clean.rake +1 -3
- data/lib/tasks/vite/install_dependencies.rake +3 -9
- data/lib/tasks/vite/verify_install.rake +3 -3
- data/lib/vite_rails.rb +23 -34
- data/lib/vite_rails/builder.rb +11 -13
- data/lib/vite_rails/commands.rb +51 -10
- data/lib/vite_rails/config.rb +65 -35
- data/lib/vite_rails/dev_server_proxy.rb +26 -18
- data/lib/vite_rails/helper.rb +17 -8
- data/lib/vite_rails/manifest.rb +14 -12
- data/lib/vite_rails/runner.rb +3 -6
- data/lib/vite_rails/version.rb +1 -1
- data/package.json +9 -2
- data/package/default.vite.json +2 -1
- data/test/builder_test.rb +27 -22
- data/test/commands_test.rb +67 -0
- data/test/config_test.rb +133 -0
- data/test/dev_server_proxy_test.rb +102 -0
- data/test/dev_server_test.rb +0 -30
- data/test/engine_rake_tasks_test.rb +56 -17
- data/test/helper_test.rb +37 -105
- data/test/manifest_test.rb +33 -29
- data/test/mode_test.rb +6 -11
- data/test/mounted_app/test/dummy/config/vite.json +5 -11
- data/test/mounted_app/test/dummy/package.json +5 -4
- data/test/mounted_app/test/dummy/yarn.lock +208 -0
- data/test/rake_tasks_test.rb +7 -21
- data/test/runner_test.rb +31 -0
- data/test/test_app/app/frontend/entrypoints/application.js +2 -0
- data/test/test_app/config/vite.json +0 -2
- data/test/test_app/config/vite_additional_paths.json +5 -0
- data/test/test_app/config/vite_public_dir.json +5 -0
- data/test/test_app/public/vite-production/manifest.json +22 -0
- data/test/test_helper.rb +48 -14
- metadata +23 -25
- data/test/command_test.rb +0 -35
- data/test/configuration_test.rb +0 -80
- data/test/dev_server_runner_test.rb +0 -83
- data/test/test_app/app/javascript/entrypoints/application.js +0 -10
- data/test/test_app/app/javascript/entrypoints/multi_entry.css +0 -4
- data/test/test_app/app/javascript/entrypoints/multi_entry.js +0 -4
- data/test/test_app/config/vite_public_root.yml +0 -20
- data/test/test_app/public/vite/manifest.json +0 -36
- data/test/vite_runner_test.rb +0 -59
- data/test/webpacker_test.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9c6ae06bd2fe02d39882813646c291aa1984bf6f4bfbd337859c8527f83cdd66
|
4
|
+
data.tar.gz: 932af2eeadf8830685a6f1d30431849b1e46227147f34a11b286824d3ce80cf7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 67f388f8c74bd39ee14f9d8033941a7616400f9e725a1c2cec7f459f9faa06457dcb113648d9bdb672b5497093f3905bddc13928b834c91f43cef08a58de0e65
|
7
|
+
data.tar.gz: fba446503a41accc9bd4a769042858789615b2095171d6c138c0f2aaf0471ce741da98d9aa058fabc1ee92e2f667b8c19bcab48980ea4288d4b4400b53d94f15
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,27 @@
|
|
1
|
+
## Vite Rails 1.0.11 (2020-01-24)
|
2
|
+
|
3
|
+
- Fix bug in `assetHost` that caused `base` to be configured incorrectly.
|
4
|
+
- Allow installing `vite` and `vite-plugin-ruby` as devDependencies, and install them when precompiling assets.
|
5
|
+
- Move `base` to the configuration root after Vite's update in beta.38
|
6
|
+
|
7
|
+
## Vite Rails 1.0.10 (2020-01-23)
|
8
|
+
|
9
|
+
- Use `path_to_asset` in `vite_asset_path` so that it's prefixed automatically
|
10
|
+
when using a CDN (`config.action_controller.asset_host`).
|
11
|
+
|
12
|
+
## Vite Rails 1.0.9 (2020-01-22)
|
13
|
+
|
14
|
+
- Ensure `configPath` and `publicDir` are scoped from `root`, both in Ruby and JS.
|
15
|
+
|
16
|
+
## Vite Rails 1.0.8 (2020-01-21)
|
17
|
+
|
18
|
+
- Change the default of `sourceCodeDir` to `app/frontend`, add instructions for folks migrating
|
19
|
+
from a `app/javascript` structure.
|
20
|
+
|
21
|
+
## Vite Rails 1.0.7 (2020-01-20)
|
22
|
+
|
23
|
+
- Add `vite_client_tag` to ensure the Vite client can be loaded in apps that don't use any imports.
|
24
|
+
|
1
25
|
## Vite Rails 1.0.6 (2020-01-20)
|
2
26
|
|
3
27
|
- Ensure running `bin/rake assets:precompile` automatically invokes `vite:build`.
|
data/CONTRIBUTING.md
CHANGED
data/README.md
CHANGED
@@ -1,15 +1,26 @@
|
|
1
1
|
<h1 align="center">
|
2
|
-
|
2
|
+
<a href="https://vite-rails.netlify.app/">
|
3
|
+
<img src="https://raw.githubusercontent.com/ElMassimo/vite_rails/main/docs/public/logo.svg" width="120px"/>
|
4
|
+
</a>
|
5
|
+
|
6
|
+
<br>
|
7
|
+
|
8
|
+
<a href="https://vite-rails.netlify.app/">
|
9
|
+
Vite Rails
|
10
|
+
</a>
|
11
|
+
|
12
|
+
<br>
|
13
|
+
|
3
14
|
<p align="center">
|
4
|
-
|
15
|
+
<a href="https://github.com/ElMassimo/vite_rails/actions">
|
5
16
|
<img alt="Build Status" src="https://github.com/ElMassimo/vite_rails/workflows/build/badge.svg"/>
|
6
|
-
</a>
|
7
|
-
|
17
|
+
</a>
|
18
|
+
<a href="https://codeclimate.com/github/ElMassimo/vite_rails">
|
8
19
|
<img alt="Maintainability" src="https://codeclimate.com/github/ElMassimo/vite_rails/badges/gpa.svg"/>
|
9
20
|
</a>
|
10
21
|
<a href="https://codeclimate.com/github/ElMassimo/vite_rails">
|
11
22
|
<img alt="Test Coverage" src="https://codeclimate.com/github/ElMassimo/vite_rails/badges/coverage.svg"/>
|
12
|
-
</a>
|
23
|
+
</a>
|
13
24
|
<a href="https://rubygems.org/gems/vite_rails">
|
14
25
|
<img alt="Gem Version" src="https://img.shields.io/gem/v/vite_rails.svg?colorB=e9573f"/>
|
15
26
|
</a>
|
@@ -19,26 +30,35 @@
|
|
19
30
|
</p>
|
20
31
|
</h1>
|
21
32
|
|
33
|
+
[website]: https://vite-rails.netlify.app/
|
34
|
+
[configuration reference]: https://vite-rails.netlify.app/config/
|
35
|
+
[features]: https://vite-rails.netlify.app/guide/introduction.html
|
36
|
+
[guides]: https://vite-rails.netlify.app/guide/
|
37
|
+
[config]: https://vite-rails.netlify.app/config/
|
22
38
|
[vite_rails]: https://github.com/ElMassimo/vite_rails
|
23
39
|
[webpacker]: https://github.com/rails/webpacker
|
24
40
|
[vite]: http://vitejs.dev/
|
25
41
|
[config file]: https://github.com/ElMassimo/vite_rails/blob/main/package/default.vite.json
|
42
|
+
[example app]: https://github.com/ElMassimo/vite_rails/tree/main/examples/blog
|
43
|
+
[heroku]: https://vite-rails-demo.herokuapp.com/
|
26
44
|
|
27
|
-
[__Vite Rails__][vite_rails] allows you to use [Vite] to power the frontend.
|
45
|
+
[__Vite Rails__][vite_rails] allows you to use [Vite] to power the frontend of your Rails app.
|
28
46
|
|
29
47
|
[Vite] is to frontend tooling as Ruby to programming, pure joy! 😍
|
30
48
|
|
49
|
+
Check an [example app] running on [Heroku].
|
50
|
+
|
31
51
|
## Features ⚡️
|
32
52
|
|
33
|
-
- 🤖 Automatic
|
34
|
-
- ⚡️
|
35
|
-
-
|
36
|
-
- 🤝 Integrated with <kbd>assets:precompile</kbd>
|
37
|
-
- And more!
|
53
|
+
- 🤖 Automatic entrypoint detection
|
54
|
+
- ⚡️ Blazing fast hot reload
|
55
|
+
- 🚀 Zero-config deployments
|
56
|
+
- 🤝 Integrated with <kbd>assets:precompile</kbd>
|
57
|
+
- [And more!][features]
|
38
58
|
|
39
59
|
## Documentation 📖
|
40
60
|
|
41
|
-
|
61
|
+
Visit the [documentation website][website] to check out the [guides] and searchable [configuration reference].
|
42
62
|
|
43
63
|
## Installation 💿
|
44
64
|
|
@@ -57,74 +77,27 @@ bin/rake vite:install
|
|
57
77
|
|
58
78
|
This will generate configuration files and a sample setup.
|
59
79
|
|
60
|
-
|
61
|
-
|
62
|
-
Drawing inspiration from [webpacker], any files in `app/javascript/entrypoints`
|
63
|
-
will be considered entries to your application (SPAs or pages).
|
80
|
+
Additional installation instructions are available in the [documentation website][website].
|
64
81
|
|
65
|
-
|
66
|
-
for you.
|
82
|
+
## Getting Started 💻
|
67
83
|
|
68
|
-
|
84
|
+
Restart your Rails server, and then run <kbd>bin/vite</kbd> to start the Vite development server.
|
69
85
|
|
70
|
-
|
71
|
-
you to use absolute paths:
|
86
|
+
Add the following your `views/layouts/application.html.erb`:
|
72
87
|
|
73
|
-
```
|
74
|
-
|
75
|
-
|
76
|
-
import '~/channels'
|
77
|
-
|
78
|
-
createApp(App).mount('#app')
|
79
|
-
```
|
80
|
-
|
81
|
-
### Tags 🏷
|
82
|
-
|
83
|
-
`vite_typescript_tag`, `vite_javascript_tag`, and `vite_stylesheet_tag` can be
|
84
|
-
used to output `<script>` and `<link>` tags in your Rails layouts or templates.
|
85
|
-
|
86
|
-
```html
|
87
|
-
<head>
|
88
|
-
<title>Joie</title>
|
89
|
-
<%= csrf_meta_tags %>
|
90
|
-
<%= csp_meta_tag %>
|
91
|
-
|
92
|
-
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
|
93
|
-
<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
|
94
|
-
|
95
|
-
<%= vite_stylesheet_tag 'strange' %>
|
96
|
-
<%= vite_typescript_tag 'application' %>
|
97
|
-
</head>
|
88
|
+
```erb
|
89
|
+
<%= vite_client_tag %>
|
90
|
+
<%= vite_javascript_tag 'application' %>
|
98
91
|
```
|
99
92
|
|
100
|
-
|
101
|
-
|
102
|
-
## Configuration ⚙️
|
103
|
-
|
104
|
-
This is what your `config/vite.json` might look like:
|
105
|
-
|
106
|
-
```json
|
107
|
-
{
|
108
|
-
"all": {
|
109
|
-
"watchAdditionalPaths": []
|
110
|
-
},
|
111
|
-
"development": {
|
112
|
-
"autoBuild": true,
|
113
|
-
"publicOutputDir": "vite-dev",
|
114
|
-
"port": 3036
|
115
|
-
},
|
116
|
-
"test": {
|
117
|
-
"autoBuild": true,
|
118
|
-
"publicOutputDir": "vite-test"
|
119
|
-
}
|
120
|
-
}
|
121
|
-
```
|
93
|
+
Visit any page and you should see a printed console output: `Vite ⚡️ Rails`.
|
122
94
|
|
123
|
-
|
95
|
+
For more [guides] and a full [configuration reference], check the [documentation website][website].
|
124
96
|
|
125
|
-
##
|
97
|
+
## Special Thanks 🙏
|
126
98
|
|
127
99
|
- [webpacker]
|
100
|
+
- [vite]
|
128
101
|
|
129
102
|
## License
|
130
103
|
|
@@ -1,3 +1,10 @@
|
|
1
|
+
// To see this message, add the following to the `<head>` section in your
|
2
|
+
// views/layouts/application.html.erb
|
3
|
+
//
|
4
|
+
// <%= vite_client_tag %>
|
5
|
+
// <%= vite_javascript_tag 'application' %>
|
6
|
+
console.log('Vite ⚡️ Rails')
|
7
|
+
|
1
8
|
// Example: Load Rails libraries in Vite.
|
2
9
|
//
|
3
10
|
// import '@rails/ujs'
|
@@ -11,8 +18,5 @@
|
|
11
18
|
// Turbolinks.start()
|
12
19
|
// ActiveStorage.start()
|
13
20
|
|
14
|
-
// Example: Import a stylesheet in app/
|
21
|
+
// Example: Import a stylesheet in app/frontend/index.css
|
15
22
|
// import '~/index.css'
|
16
|
-
|
17
|
-
console.log('Vite ⚡️ Rails')
|
18
|
-
|
data/lib/install/template.rb
CHANGED
@@ -6,7 +6,7 @@ copy_file "#{ __dir__ }/config/vite.json", ViteRails.config.config_path
|
|
6
6
|
copy_file "#{ __dir__ }/config/vite.config.ts", Rails.root.join('vite.config.ts')
|
7
7
|
|
8
8
|
say 'Creating entrypoints directory'
|
9
|
-
directory "#{ __dir__ }/javascript/entrypoints", ViteRails.config.
|
9
|
+
directory "#{ __dir__ }/javascript/entrypoints", ViteRails.config.resolved_entrypoints_dir
|
10
10
|
|
11
11
|
apply "#{ __dir__ }/binstubs.rb"
|
12
12
|
|
@@ -33,8 +33,8 @@ Dir.chdir(Rails.root) do
|
|
33
33
|
vite_version = package_json.match(/"vite": "(.*)"/)[1]
|
34
34
|
plugin_version = package_json.match(/"vite-plugin-ruby": "(.*)"/)[1]
|
35
35
|
|
36
|
-
say 'Installing vite as
|
37
|
-
run "yarn add vite@#{ vite_version } vite-plugin-ruby@#{ plugin_version }"
|
36
|
+
say 'Installing vite as build dependencies'
|
37
|
+
run "yarn add -D vite@#{ vite_version } vite-plugin-ruby@#{ plugin_version }"
|
38
38
|
end
|
39
39
|
|
40
40
|
say 'Vite ⚡️ Rails successfully installed! 🎉', :green
|
data/lib/tasks/vite/build.rake
CHANGED
@@ -3,21 +3,27 @@
|
|
3
3
|
$stdout.sync = true
|
4
4
|
|
5
5
|
def enhance_assets_precompile
|
6
|
+
# Before installing
|
7
|
+
['yarn:install', 'webpacker:yarn_install'].each do |name|
|
8
|
+
Rake::Task[name].enhance([:'vite:set_node_env']) if Rake::Task.task_defined?(name)
|
9
|
+
end
|
10
|
+
|
11
|
+
# After precompiling
|
6
12
|
Rake::Task['assets:precompile'].enhance do |task|
|
7
13
|
prefix = task.name.split(/#|assets:precompile/).first
|
8
|
-
|
9
14
|
Rake::Task["#{ prefix }vite:build"].invoke
|
10
15
|
end
|
11
16
|
end
|
12
17
|
|
13
18
|
namespace :vite do
|
19
|
+
desc 'Fixes Rails management of node dev dependencies (build dependencies)'
|
20
|
+
task :set_node_env do
|
21
|
+
ENV['NODE_ENV'] = 'development'
|
22
|
+
end
|
23
|
+
|
14
24
|
desc 'Compile JavaScript packs using vite for production with digests'
|
15
25
|
task build: [:'vite:verify_install', :environment] do
|
16
|
-
ViteRails.
|
17
|
-
ViteRails.ensure_log_goes_to_stdout do
|
18
|
-
ViteRails.build || exit!
|
19
|
-
end
|
20
|
-
end
|
26
|
+
ViteRails.build_from_rake
|
21
27
|
end
|
22
28
|
end
|
23
29
|
|
data/lib/tasks/vite/clean.rake
CHANGED
@@ -5,9 +5,7 @@ $stdout.sync = true
|
|
5
5
|
namespace :vite do
|
6
6
|
desc 'Remove old compiled vites'
|
7
7
|
task :clean, [:keep, :age] => [:'vite:verify_install', :environment] do |_, args|
|
8
|
-
ViteRails.
|
9
|
-
ViteRails.clean(keep_up_to: Integer(args.keep || 2), age_in_seconds: Integer(args.age || 3600))
|
10
|
-
end
|
8
|
+
ViteRails.clean_from_rake(args)
|
11
9
|
end
|
12
10
|
end
|
13
11
|
|
@@ -1,19 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
namespace :vite do
|
4
|
-
desc '
|
4
|
+
desc 'Install all JavaScript dependencies as specified via Yarn'
|
5
5
|
task :install_dependencies do
|
6
6
|
valid_node_envs = %w[test development production]
|
7
7
|
node_env = ENV.fetch('NODE_ENV') { valid_node_envs.include?(Rails.env) ? Rails.env : 'production' }
|
8
8
|
Dir.chdir(Rails.root) do
|
9
|
-
|
10
|
-
|
11
|
-
"yarn install #{ v1 ? '--no-progress --frozen-lockfile' : '--immutable' }"
|
12
|
-
elsif Rails.root.join('pnpm-lock.yaml').exist?
|
13
|
-
'pnpm install'
|
14
|
-
else
|
15
|
-
'npm ci'
|
16
|
-
end
|
9
|
+
v1 = `yarn --version`.start_with?('1')
|
10
|
+
install_command = "yarn install #{ v1 ? '--no-progress --frozen-lockfile' : '--immutable' } --production=false"
|
17
11
|
system({ 'NODE_ENV' => node_env }, install_command)
|
18
12
|
end
|
19
13
|
end
|
@@ -11,10 +11,10 @@ namespace :vite do
|
|
11
11
|
WARN
|
12
12
|
exit!
|
13
13
|
end
|
14
|
-
|
15
|
-
|
14
|
+
config_path = Rails.root.join(ViteRails.config.config_path)
|
15
|
+
unless config_path.exist?
|
16
16
|
warn <<~WARN
|
17
|
-
Configuration #{
|
17
|
+
Configuration #{ config_path } file for vite-plugin-ruby not found.
|
18
18
|
Make sure vite:install has run successfully before running dependent tasks.
|
19
19
|
WARN
|
20
20
|
exit!
|
data/lib/vite_rails.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require '
|
4
|
-
require 'active_support/
|
3
|
+
require 'rails'
|
4
|
+
require 'active_support/all'
|
5
5
|
|
6
6
|
require 'zeitwerk'
|
7
7
|
loader = Zeitwerk::Loader.for_gem
|
@@ -13,18 +13,10 @@ class ViteRails
|
|
13
13
|
# Internal: Prefix used for environment variables that modify the configuration.
|
14
14
|
ENV_PREFIX = 'VITE_RUBY'
|
15
15
|
|
16
|
-
# Public: Additional environment variables to pass to Vite.
|
17
|
-
#
|
18
|
-
# Example:
|
19
|
-
# ViteRails.env['VITE_RUBY_CONFIG_PATH'] = 'config/alternate_vite.json'
|
20
|
-
cattr_accessor(:env) { ENV.select { |key, _| key.start_with?(ENV_PREFIX) } }
|
21
|
-
|
22
|
-
cattr_accessor(:logger) { ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDOUT)) }
|
23
|
-
|
24
16
|
class << self
|
25
|
-
delegate :config, :builder, :manifest, :commands, :dev_server, :dev_server_running?, to: :instance
|
17
|
+
delegate :config, :builder, :manifest, :commands, :dev_server, :dev_server_running?, :run_proxy?, to: :instance
|
26
18
|
delegate :mode, to: :config
|
27
|
-
delegate :bootstrap, :clean, :clobber, :build, to: :commands
|
19
|
+
delegate :bootstrap, :clean, :clean_from_rake, :clobber, :build, :build_from_rake, to: :commands
|
28
20
|
|
29
21
|
attr_writer :instance
|
30
22
|
|
@@ -37,34 +29,31 @@ class ViteRails
|
|
37
29
|
ViteRails::Runner.new(args).run
|
38
30
|
end
|
39
31
|
|
40
|
-
#
|
41
|
-
def
|
42
|
-
|
43
|
-
rescue StandardError => error
|
44
|
-
logger.error("Failed to check mode for Vite: #{ error.message }")
|
45
|
-
false
|
32
|
+
# Internal: Allows to obtain any env variables for configuration options.
|
33
|
+
def load_env_variables
|
34
|
+
ENV.select { |key, _| key.start_with?(ENV_PREFIX) }
|
46
35
|
end
|
36
|
+
end
|
47
37
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
ENV['NODE_ENV'] = original
|
54
|
-
end
|
38
|
+
# Public: Additional environment variables to pass to Vite.
|
39
|
+
#
|
40
|
+
# Example:
|
41
|
+
# ViteRails.env['VITE_RUBY_CONFIG_PATH'] = 'config/alternate_vite.json'
|
42
|
+
cattr_accessor(:env) { load_env_variables }
|
55
43
|
|
56
|
-
|
57
|
-
old_logger = ViteRails.logger
|
58
|
-
ViteRails.logger = ActiveSupport::Logger.new(STDOUT)
|
59
|
-
yield
|
60
|
-
ensure
|
61
|
-
ViteRails.logger = old_logger
|
62
|
-
end
|
63
|
-
end
|
44
|
+
cattr_accessor(:logger) { ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDOUT)) }
|
64
45
|
|
65
46
|
# Public: Returns true if the Vite development server is running.
|
66
47
|
def dev_server_running?
|
67
|
-
|
48
|
+
run_proxy? && dev_server.running?
|
49
|
+
end
|
50
|
+
|
51
|
+
# Public: The proxy for assets should only run in development mode.
|
52
|
+
def run_proxy?
|
53
|
+
config.mode == 'development'
|
54
|
+
rescue StandardError => error
|
55
|
+
ViteRails.logger.error("Failed to check mode for Vite: #{ error.message }")
|
56
|
+
false
|
68
57
|
end
|
69
58
|
|
70
59
|
# Public: Current instance configuration for Vite.
|
data/lib/vite_rails/builder.rb
CHANGED
@@ -67,9 +67,18 @@ private
|
|
67
67
|
def build_with_vite
|
68
68
|
logger.info 'Building with Vite ⚡️'
|
69
69
|
|
70
|
-
|
71
|
-
|
70
|
+
command = "#{ which_ruby } ./bin/vite build --mode #{ config.mode }"
|
71
|
+
stdout, stderr, status = Open3.capture3(ViteRails.config.to_env, command, chdir: File.expand_path(config.root))
|
72
72
|
|
73
|
+
log_build_result(stdout, stderr, status)
|
74
|
+
|
75
|
+
status.success?
|
76
|
+
end
|
77
|
+
|
78
|
+
# Internal: Outputs the build results.
|
79
|
+
#
|
80
|
+
# NOTE: By default it also outputs the manifest entries.
|
81
|
+
def log_build_result(stdout, stderr, status)
|
73
82
|
if status.success?
|
74
83
|
logger.info "Build with Vite complete: #{ config.build_output_dir }"
|
75
84
|
logger.error(stderr.to_s) unless stderr.empty?
|
@@ -78,8 +87,6 @@ private
|
|
78
87
|
non_empty_streams = [stdout, stderr].delete_if(&:empty?)
|
79
88
|
logger.error "Build with Vite failed:\n#{ non_empty_streams.join("\n\n") }"
|
80
89
|
end
|
81
|
-
|
82
|
-
status.success?
|
83
90
|
end
|
84
91
|
|
85
92
|
# Internal: Used to prefix the bin/vite executable file.
|
@@ -101,13 +108,4 @@ private
|
|
101
108
|
config.config_path,
|
102
109
|
].freeze
|
103
110
|
end
|
104
|
-
|
105
|
-
# Internal: Sets additional environment variables for vite-plugin-ruby.
|
106
|
-
def vite_env
|
107
|
-
ViteRails.env.merge(
|
108
|
-
"#{ ViteRails::ENV_PREFIX }_CONFIG_PATH" => config.config_path,
|
109
|
-
"#{ ViteRails::ENV_PREFIX }_MODE" => config.mode,
|
110
|
-
"#{ ViteRails::ENV_PREFIX }_ROOT" => config.root,
|
111
|
-
).transform_values(&:to_s)
|
112
|
-
end
|
113
111
|
end
|