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.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +24 -0
  3. data/CONTRIBUTING.md +0 -1
  4. data/README.md +43 -70
  5. data/lib/install/config/vite.config.ts +1 -1
  6. data/lib/install/javascript/entrypoints/application.js +8 -4
  7. data/lib/install/template.rb +3 -3
  8. data/lib/tasks/vite/build.rake +12 -6
  9. data/lib/tasks/vite/clean.rake +1 -3
  10. data/lib/tasks/vite/install_dependencies.rake +3 -9
  11. data/lib/tasks/vite/verify_install.rake +3 -3
  12. data/lib/vite_rails.rb +23 -34
  13. data/lib/vite_rails/builder.rb +11 -13
  14. data/lib/vite_rails/commands.rb +51 -10
  15. data/lib/vite_rails/config.rb +65 -35
  16. data/lib/vite_rails/dev_server_proxy.rb +26 -18
  17. data/lib/vite_rails/helper.rb +17 -8
  18. data/lib/vite_rails/manifest.rb +14 -12
  19. data/lib/vite_rails/runner.rb +3 -6
  20. data/lib/vite_rails/version.rb +1 -1
  21. data/package.json +9 -2
  22. data/package/default.vite.json +2 -1
  23. data/test/builder_test.rb +27 -22
  24. data/test/commands_test.rb +67 -0
  25. data/test/config_test.rb +133 -0
  26. data/test/dev_server_proxy_test.rb +102 -0
  27. data/test/dev_server_test.rb +0 -30
  28. data/test/engine_rake_tasks_test.rb +56 -17
  29. data/test/helper_test.rb +37 -105
  30. data/test/manifest_test.rb +33 -29
  31. data/test/mode_test.rb +6 -11
  32. data/test/mounted_app/test/dummy/config/vite.json +5 -11
  33. data/test/mounted_app/test/dummy/package.json +5 -4
  34. data/test/mounted_app/test/dummy/yarn.lock +208 -0
  35. data/test/rake_tasks_test.rb +7 -21
  36. data/test/runner_test.rb +31 -0
  37. data/test/test_app/app/frontend/entrypoints/application.js +2 -0
  38. data/test/test_app/config/vite.json +0 -2
  39. data/test/test_app/config/vite_additional_paths.json +5 -0
  40. data/test/test_app/config/vite_public_dir.json +5 -0
  41. data/test/test_app/public/vite-production/manifest.json +22 -0
  42. data/test/test_helper.rb +48 -14
  43. metadata +23 -25
  44. data/test/command_test.rb +0 -35
  45. data/test/configuration_test.rb +0 -80
  46. data/test/dev_server_runner_test.rb +0 -83
  47. data/test/test_app/app/javascript/entrypoints/application.js +0 -10
  48. data/test/test_app/app/javascript/entrypoints/multi_entry.css +0 -4
  49. data/test/test_app/app/javascript/entrypoints/multi_entry.js +0 -4
  50. data/test/test_app/config/vite_public_root.yml +0 -20
  51. data/test/test_app/public/vite/manifest.json +0 -36
  52. data/test/vite_runner_test.rb +0 -59
  53. data/test/webpacker_test.rb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e6696b0e5605b6b818d3512247732ca61379c1c54ffd2da4d4fba9aa45b0fb9e
4
- data.tar.gz: 679a936095a88dfbc9a03b3bf0fe04003ebde7aad4d4cf1b65bd2dcf23c2fd22
3
+ metadata.gz: 9c6ae06bd2fe02d39882813646c291aa1984bf6f4bfbd337859c8527f83cdd66
4
+ data.tar.gz: 932af2eeadf8830685a6f1d30431849b1e46227147f34a11b286824d3ce80cf7
5
5
  SHA512:
6
- metadata.gz: 4bf20acab3ed24be1785dcf2663d037ac4e026d1c73fb8a9b74b2487cda253a9e22b3e352930415296b1f746c9b777adfc664c2993664cfb2cb908e1b8850d1e
7
- data.tar.gz: 44a029814b091587cd2d50589276cd1c757c18302e0155878c88c0e5cd0005353e24b32bc6c74205a0752291c5c24e51182b259e22f97c69ba16d713ebafbbe1
6
+ metadata.gz: 67f388f8c74bd39ee14f9d8033941a7616400f9e725a1c2cec7f459f9faa06457dcb113648d9bdb672b5497093f3905bddc13928b834c91f43cef08a58de0e65
7
+ data.tar.gz: fba446503a41accc9bd4a769042858789615b2095171d6c138c0f2aaf0471ce741da98d9aa058fabc1ee92e2f667b8c19bcab48980ea4288d4b4400b53d94f15
@@ -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`.
@@ -6,7 +6,6 @@
6
6
 
7
7
  ```
8
8
  bundle install
9
- yarn
10
9
  ```
11
10
 
12
11
  ## Making sure your changes pass all tests
data/README.md CHANGED
@@ -1,15 +1,26 @@
1
1
  <h1 align="center">
2
- Vite ⚡️ Rails
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
- <!-- <a href="https://github.com/ElMassimo/vite_rails/actions">
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
- <!-- <a href="https://codeclimate.com/github/ElMassimo/vite_rails">
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 Entrypoint Detection
34
- - ⚡️ Hot Reload
35
- - ⚙️ Rake Tasks
36
- - 🤝 Integrated with <kbd>assets:precompile</kbd> and friends
37
- - And more! (detects changes, and builds automatically if Vite is not running)
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
- A documentation website is coming soon!
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
- ## Usage 🚀
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
- These files will be detected, and passed on to Vite, all configuration is done
66
- for you.
82
+ ## Getting Started 💻
67
83
 
68
- ### Imports ⤵️
84
+ Restart your Rails server, and then run <kbd>bin/vite</kbd> to start the Vite development server.
69
85
 
70
- For convenience, a `~/` import alias is configured to `app/javascript`, allowing
71
- you to use absolute paths:
86
+ Add the following your `views/layouts/application.html.erb`:
72
87
 
73
- ```js
74
- import { createApp } from 'vue'
75
- import App from '~/App.vue'
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
- For other types of assets, you can use `vite_asset_path` and pass that to the appropriate tag helper.
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
- Check [this file][config file] to see all config options, documentation is coming soon.
95
+ For more [guides] and a full [configuration reference], check the [documentation website][website].
124
96
 
125
- ## Inspiration 💡
97
+ ## Special Thanks 🙏
126
98
 
127
99
  - [webpacker]
100
+ - [vite]
128
101
 
129
102
  ## License
130
103
 
@@ -6,6 +6,6 @@ export default defineConfig({
6
6
  RubyPlugin(),
7
7
  ],
8
8
  optimizeDeps: {
9
- exclude: [/webpack/, /vite-plugin-ruby/],
9
+ exclude: [/webpack/], // In case webpacker is installed (these deps won't be imported)
10
10
  },
11
11
  })
@@ -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/javascript/index.css
21
+ // Example: Import a stylesheet in app/frontend/index.css
15
22
  // import '~/index.css'
16
-
17
- console.log('Vite ⚡️ Rails')
18
-
@@ -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.source_code_dir.join(ViteRails.config.entrypoints_dir)
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 direct dependencies'
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
@@ -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.with_node_env(ENV.fetch('NODE_ENV', 'production')) do
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
 
@@ -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.ensure_log_goes_to_stdout do
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 'Support for older Rails versions. Install all JavaScript dependencies as specified via Yarn'
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
- install_command = if Rails.root.join('yarn.lock').exist?
10
- v1 = `yarn --version`.start_with?('1')
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
- unless ViteRails.config.config_path.exist?
15
- path = ViteRails.config.config_path.relative_path_from(Pathname.new(pwd)).to_s
14
+ config_path = Rails.root.join(ViteRails.config.config_path)
15
+ unless config_path.exist?
16
16
  warn <<~WARN
17
- Configuration #{ path } file for vite-plugin-ruby not found.
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!
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_support'
4
- require 'active_support/core_ext/class/attribute_accessors'
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
- # Public: The proxy for assets should only run in development mode.
41
- def run_proxy?
42
- config.mode == 'development'
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
- def with_node_env(env)
49
- original = ENV['NODE_ENV']
50
- ENV['NODE_ENV'] = env
51
- yield
52
- ensure
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
- def ensure_log_goes_to_stdout
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
- ViteRails.run_proxy? && dev_server.running?
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.
@@ -67,9 +67,18 @@ private
67
67
  def build_with_vite
68
68
  logger.info 'Building with Vite ⚡️'
69
69
 
70
- stdout, stderr, status = Open3.capture3(vite_env,
71
- "#{ which_ruby } ./bin/vite build --mode #{ config.mode }", chdir: File.expand_path(config.root))
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