vite_rails 1.0.1 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 89b280f3a27da1896e3036c387874f6f2c5c0033aa3cb9f77cac84fecba57be3
4
- data.tar.gz: 70e6f39a6f35af3e7a95cbd92cf7a2b9d2b4c0429335611ebf3cbab60386c775
3
+ metadata.gz: e6696b0e5605b6b818d3512247732ca61379c1c54ffd2da4d4fba9aa45b0fb9e
4
+ data.tar.gz: 679a936095a88dfbc9a03b3bf0fe04003ebde7aad4d4cf1b65bd2dcf23c2fd22
5
5
  SHA512:
6
- metadata.gz: 7b97f37e3822e99622b2a668cd957a27aeb1a00b98efe3e750c90169f4ae8dc2312a4c7460de6b4582a8414a92b704b668c880190314fd1d3632002b3f77c587
7
- data.tar.gz: 76cce62bdedfc515e62e1777746a7a39ebe500a0e8afbd5b7c9255372a984a1042747d7e8dc52d4992d03370649c677c7c603cab75d3a6b5c9af2c0c447ef0a9
6
+ metadata.gz: 4bf20acab3ed24be1785dcf2663d037ac4e026d1c73fb8a9b74b2487cda253a9e22b3e352930415296b1f746c9b777adfc664c2993664cfb2cb908e1b8850d1e
7
+ data.tar.gz: 44a029814b091587cd2d50589276cd1c757c18302e0155878c88c0e5cd0005353e24b32bc6c74205a0752291c5c24e51182b259e22f97c69ba16d713ebafbbe1
@@ -1,3 +1,15 @@
1
- ## Vite Rails 1.0.0
1
+ ## Vite Rails 1.0.6 (2020-01-20)
2
+
3
+ - Ensure running `bin/rake assets:precompile` automatically invokes `vite:build`.
4
+
5
+ ## Vite Rails 1.0.5 (2020-01-20)
6
+
7
+ - Automatically add `<link rel="modulepreload">` and `<link rel="stylesheet">` when using `vite_javascript_tag`, which simplifies usage.
8
+
9
+ ## Vite Rails 1.0.4 (2020-01-19)
10
+
11
+ - Remove Vue specific examples from installation templates, to ensure they always run.
12
+
13
+ ## Vite Rails 1.0.0 (2020-01-18)
2
14
 
3
15
  Initial Version
data/README.md CHANGED
@@ -22,6 +22,7 @@
22
22
  [vite_rails]: https://github.com/ElMassimo/vite_rails
23
23
  [webpacker]: https://github.com/rails/webpacker
24
24
  [vite]: http://vitejs.dev/
25
+ [config file]: https://github.com/ElMassimo/vite_rails/blob/main/package/default.vite.json
25
26
 
26
27
  [__Vite Rails__][vite_rails] allows you to use [Vite] to power the frontend.
27
28
 
@@ -32,11 +33,12 @@
32
33
  - 🤖 Automatic Entrypoint Detection
33
34
  - ⚡️ Hot Reload
34
35
  - ⚙️ Rake Tasks
35
- - 🪝 Hooks to <kbd>assets:precompile</kbd> and friends
36
+ - 🤝 Integrated with <kbd>assets:precompile</kbd> and friends
37
+ - And more! (detects changes, and builds automatically if Vite is not running)
36
38
 
37
39
  ## Documentation 📖
38
40
 
39
- Coming Soon!
41
+ A documentation website is coming soon!
40
42
 
41
43
  ## Installation 💿
42
44
 
@@ -55,6 +57,71 @@ bin/rake vite:install
55
57
 
56
58
  This will generate configuration files and a sample setup.
57
59
 
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).
64
+
65
+ These files will be detected, and passed on to Vite, all configuration is done
66
+ for you.
67
+
68
+ ### Imports ⤵️
69
+
70
+ For convenience, a `~/` import alias is configured to `app/javascript`, allowing
71
+ you to use absolute paths:
72
+
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>
98
+ ```
99
+
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
+ ```
122
+
123
+ Check [this file][config file] to see all config options, documentation is coming soon.
124
+
58
125
  ## Inspiration 💡
59
126
 
60
127
  - [webpacker]
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ ENV['RAILS_ENV'] ||= ENV['RACK_ENV'] || 'development'
5
+ ENV['NODE_ENV'] ||= ENV['RAILS_ENV'] == 'development' ? 'development' : 'production'
6
+
7
+ require 'pathname'
8
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile', Pathname.new(__FILE__).realpath)
9
+
10
+ require 'bundler/setup'
11
+
12
+ require 'vite_rails'
13
+
14
+ APP_ROOT = File.expand_path('..', __dir__)
15
+ Dir.chdir(APP_ROOT) do
16
+ ViteRails.run(ARGV)
17
+ end
@@ -0,0 +1,11 @@
1
+ import { defineConfig } from 'vite'
2
+ import RubyPlugin from 'vite-plugin-ruby'
3
+
4
+ export default defineConfig({
5
+ plugins: [
6
+ RubyPlugin(),
7
+ ],
8
+ optimizeDeps: {
9
+ exclude: [/webpack/, /vite-plugin-ruby/],
10
+ },
11
+ })
@@ -0,0 +1,14 @@
1
+ {
2
+ "all": {
3
+ "watchAdditionalPaths": []
4
+ },
5
+ "development": {
6
+ "autoBuild": true,
7
+ "publicOutputDir": "vite-dev",
8
+ "port": 3036
9
+ },
10
+ "test": {
11
+ "autoBuild": true,
12
+ "publicOutputDir": "vite-test"
13
+ }
14
+ }
@@ -0,0 +1,18 @@
1
+ // Example: Load Rails libraries in Vite.
2
+ //
3
+ // import '@rails/ujs'
4
+ //
5
+ // import Turbolinks from 'turbolinks'
6
+ // import ActiveStorage from '@rails/activestorage'
7
+ //
8
+ // // Import all channels.
9
+ // import.meta.globEager('./**/*_channel.js')
10
+ //
11
+ // Turbolinks.start()
12
+ // ActiveStorage.start()
13
+
14
+ // Example: Import a stylesheet in app/javascript/index.css
15
+ // import '~/index.css'
16
+
17
+ console.log('Vite ⚡️ Rails')
18
+
@@ -1,14 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # Install ViteRails
3
+ # Install Vite Rails
4
+ say 'Creating configuration files'
4
5
  copy_file "#{ __dir__ }/config/vite.json", ViteRails.config.config_path
6
+ copy_file "#{ __dir__ }/config/vite.config.ts", Rails.root.join('vite.config.ts')
5
7
 
6
- if Dir.exist?(ViteRails.config.source_code_dir)
7
- say 'The JavaScript app source directory already exists. Move it and try again to see a basic setup.'
8
- else
9
- say 'Creating JavaScript app source directory'
10
- directory "#{ __dir__ }/javascript", ViteRails.config.source_code_dir
11
- end
8
+ say 'Creating entrypoints directory'
9
+ directory "#{ __dir__ }/javascript/entrypoints", ViteRails.config.source_code_dir.join(ViteRails.config.entrypoints_dir)
12
10
 
13
11
  apply "#{ __dir__ }/binstubs.rb"
14
12
 
@@ -28,14 +26,6 @@ if git_ignore_path.exist?
28
26
  }
29
27
  end
30
28
 
31
- install = if Rails.root.join('yarn.lock').exist?
32
- 'yarn add'
33
- elsif Rails.root.join('pnpm-lock.yaml').exist?
34
- 'pnpm install'
35
- else
36
- 'npm install'
37
- end
38
-
39
29
  Dir.chdir(Rails.root) do
40
30
  say 'Installing JavaScript dependencies for Vite Rails'
41
31
  package_json = File.read("#{ __dir__ }/../../package.json")
@@ -44,19 +34,7 @@ Dir.chdir(Rails.root) do
44
34
  plugin_version = package_json.match(/"vite-plugin-ruby": "(.*)"/)[1]
45
35
 
46
36
  say 'Installing vite as direct dependencies'
47
- run "#{ install } vite@#{ vite_version } vite-plugin-ruby@#{ plugin_version }"
48
- end
49
-
50
- if Rails::VERSION::MAJOR == 5 && Rails::VERSION::MINOR > 1
51
- src = begin
52
- "#{ ViteRails.config.protocol }://#{ ViteRails.config.host_with_port }"
53
- rescue StandardError
54
- 'http://localhost:3036'
55
- end
56
- say 'You need to allow vite-dev-server host as allowed origin for connect-src.', :yellow
57
- say 'This can be done in Rails 5.2+ for development environment in the CSP initializer', :yellow
58
- say 'config/initializers/content_security_policy.rb with a snippet like this:', :yellow
59
- say %(policy.connect_src :self, :https, "http://#{ src }", "ws://#{ src }" if Rails.env.development?), :yellow
37
+ run "yarn add vite@#{ vite_version } vite-plugin-ruby@#{ plugin_version }"
60
38
  end
61
39
 
62
- say 'ViteRails successfully installed 🎉 🍰', :green
40
+ say 'Vite ⚡️ Rails successfully installed! 🎉', :green
@@ -3,7 +3,7 @@
3
3
  $stdout.sync = true
4
4
 
5
5
  def enhance_assets_precompile
6
- Rake::Task['assets:precompile'] do |task|
6
+ Rake::Task['assets:precompile'].enhance do |task|
7
7
  prefix = task.name.split(/#|assets:precompile/).first
8
8
 
9
9
  Rake::Task["#{ prefix }vite:build"].invoke
@@ -14,7 +14,6 @@ namespace :vite do
14
14
  $stdout.puts "vite-plugin-ruby: \n#{ `npm list vite-plugin-ruby version` }"
15
15
 
16
16
  $stdout.puts "Is bin/vite present?: #{ File.exist? 'bin/vite' }"
17
- $stdout.puts "Is bin/vite-dev-server present?: #{ File.exist? 'bin/vite-dev-server' }"
18
17
  $stdout.puts "Is bin/yarn present?: #{ File.exist? 'bin/yarn' }"
19
18
  end
20
19
  end
@@ -22,7 +22,7 @@ class ViteRails
22
22
  cattr_accessor(:logger) { ActiveSupport::TaggedLogging.new(ActiveSupport::Logger.new(STDOUT)) }
23
23
 
24
24
  class << self
25
- delegate :config, :builder, :manifest, :commands, :dev_server, to: :instance
25
+ delegate :config, :builder, :manifest, :commands, :dev_server, :dev_server_running?, to: :instance
26
26
  delegate :mode, to: :config
27
27
  delegate :bootstrap, :clean, :clobber, :build, to: :commands
28
28
 
@@ -62,6 +62,11 @@ class ViteRails
62
62
  end
63
63
  end
64
64
 
65
+ # Public: Returns true if the Vite development server is running.
66
+ def dev_server_running?
67
+ ViteRails.run_proxy? && dev_server.running?
68
+ end
69
+
65
70
  # Public: Current instance configuration for Vite.
66
71
  def config
67
72
  @config ||= ViteRails::Config.resolve_config
@@ -66,8 +66,6 @@ private
66
66
  # Internal: Used to load a JSON file from the specified path.
67
67
  def load_json(path)
68
68
  JSON.parse(File.read(File.expand_path(path))).deep_transform_keys(&:underscore)
69
- rescue => error
70
- (require 'pry-byebug';binding.pry;);
71
69
  end
72
70
 
73
71
  # Internal: Retrieves a configuration option from environment variables.
@@ -14,7 +14,7 @@ class ViteRails::DevServerProxy < Rack::Proxy
14
14
 
15
15
  # Rack: Intercept asset requests and send them to the Vite server.
16
16
  def perform_request(env)
17
- if vite_should_handle?(env['REQUEST_URI']) && dev_server.running?
17
+ if vite_should_handle?(env['REQUEST_URI'], env['HTTP_REFERER']) && dev_server.running?
18
18
  env['REQUEST_URI'] = env['REQUEST_URI']
19
19
  .sub(vite_asset_url_prefix, '/')
20
20
  .sub('.ts.js', '.ts') # Patch: Rails helpers always append the extension.
@@ -36,9 +36,11 @@ private
36
36
 
37
37
  delegate :config, :dev_server, to: :@vite_rails
38
38
 
39
- def vite_should_handle?(url)
40
- url.start_with?(vite_asset_url_prefix) || url.start_with?(VITE_DEPENDENCY_PREFIX) ||
41
- url.include?('?t=') # Direct Hot Reload
39
+ def vite_should_handle?(url, referer)
40
+ return true if url.start_with?(vite_asset_url_prefix) # Vite Asset
41
+ return true if url.start_with?(VITE_DEPENDENCY_PREFIX) # Vite Package Asset
42
+ return true if url.include?('?t=') # Hot Reload
43
+ return true if referer && URI.parse(referer).path.start_with?(vite_asset_url_prefix) # Entry Imported from another Entry.
42
44
  end
43
45
 
44
46
  def vite_asset_url_prefix
@@ -2,6 +2,8 @@
2
2
 
3
3
  # Public: Allows to render HTML tags for scripts and styles processed by Vite.
4
4
  module ViteRails::Helper
5
+ DEFAULT_VITE_SKIP_PRELOAD_TAGS = Rails::VERSION::MAJOR <= 5 && Rails::VERSION::MINOR < 2
6
+
5
7
  # Public: Returns the current Vite Rails instance.
6
8
  def current_vite_instance
7
9
  ViteRails.instance
@@ -12,30 +14,49 @@ module ViteRails::Helper
12
14
  # Example:
13
15
  # <%= vite_asset_path 'calendar.css' %> # => "/vite/assets/calendar-1016838bab065ae1e122.css"
14
16
  def vite_asset_path(name, **options)
15
- current_vite_instance.manifest.lookup!(name, **options)
17
+ current_vite_instance.manifest.lookup!(name, **options).fetch('file')
16
18
  end
17
19
 
18
20
  # Public: Renders a <script> tag for the specified Vite entrypoints.
19
- def vite_javascript_tag(*names, type: 'module', **options)
20
- javascript_include_tag(*sources_from_vite_manifest_entrypoints(names, type: :javascript), type: type, **options)
21
+ def vite_javascript_tag(*names,
22
+ type: 'module',
23
+ asset_type: :javascript,
24
+ skip_preload_tags: DEFAULT_VITE_SKIP_PRELOAD_TAGS,
25
+ skip_style_tags: false,
26
+ crossorigin: 'anonymous',
27
+ **options)
28
+ js_entries = names.map { |name| current_vite_instance.manifest.lookup!(name, type: asset_type) }
29
+ js_tags = javascript_include_tag(*js_entries.map { |entry| entry['file'] }, type: type, crossorigin: crossorigin, **options)
30
+
31
+ unless skip_preload_tags || ViteRails.dev_server.running?
32
+ preload_paths = js_entries.flat_map { |entry| entry['imports'] }.compact.uniq
33
+ preload_tags = preload_paths.map { |path| preload_link_tag(path, crossorigin: crossorigin) }
34
+ end
35
+
36
+ unless skip_style_tags || ViteRails.dev_server.running?
37
+ style_paths = names.map { |name| current_vite_instance.manifest.lookup(name, type: :stylesheet)&.fetch('file') }.compact
38
+ style_tags = stylesheet_link_tag(*style_paths)
39
+ end
40
+
41
+ safe_join [js_tags, preload_tags, style_tags]
21
42
  end
22
43
 
23
44
  # Public: Renders a <script> tag for the specified Vite entrypoints.
24
45
  #
25
46
  # NOTE: Because TypeScript is not a valid target in browsers, we only specify
26
47
  # the ts file when running the Vite development server.
27
- def vite_typescript_tag(*names, type: 'module', **options)
28
- javascript_include_tag(*sources_from_vite_manifest_entrypoints(names, type: :typescript), type: type, **options)
48
+ def vite_typescript_tag(*names, **options)
49
+ vite_javascript_tag(*names, asset_type: :typescript, **options)
29
50
  end
30
51
 
31
52
  # Public: Renders a <link> tag for the specified Vite entrypoints.
32
53
  def vite_stylesheet_tag(*names, **options)
33
- stylesheet_link_tag(*sources_from_vite_manifest_entrypoints(names, type: :stylesheet), **options)
54
+ stylesheet_link_tag(*sources_from_vite_manifest(names, type: :stylesheet), **options)
34
55
  end
35
56
 
36
57
  private
37
58
 
38
- def sources_from_vite_manifest_entrypoints(names, type:)
39
- names.flat_map { |name| vite_asset_path(name, type: type) }.uniq
59
+ def sources_from_vite_manifest(names, type:)
60
+ names.map { |name| vite_asset_path(name, type: type) }
40
61
  end
41
62
  end
@@ -5,7 +5,7 @@
5
5
  #
6
6
  # Example:
7
7
  # lookup_entrypoint('calendar', type: :javascript)
8
- # => "/vite/assets/calendar-1016838bab065ae1e314.js"
8
+ # => { "file" => "/vite/assets/calendar-1016838bab065ae1e314.js", "imports" => [] }
9
9
  #
10
10
  # NOTE: Using "autoBuild": true` in `config/vite.json` file will trigger a build
11
11
  # on demand as needed, before performing any lookup.
@@ -29,7 +29,8 @@ class ViteRails::Manifest
29
29
  # Returns a relative path, or nil if the asset is not found.
30
30
  #
31
31
  # Example:
32
- # ViteRails.manifest.lookup('calendar.js') # => "/vite/assets/calendar-1016838bab065ae1e122.js"
32
+ # ViteRails.manifest.lookup('calendar.js')
33
+ # # { "file" => "/vite/assets/calendar-1016838bab065ae1e122.js", "imports" => [] }
33
34
  def lookup(name, type:)
34
35
  build if should_build?
35
36
 
@@ -43,12 +44,7 @@ class ViteRails::Manifest
43
44
 
44
45
  private
45
46
 
46
- delegate :config, :builder, :dev_server, to: :@vite_rails
47
-
48
- # Public: Returns true if the Vite development server is running.
49
- def dev_server_running?
50
- ViteRails.run_proxy? && dev_server.running?
51
- end
47
+ delegate :config, :builder, :dev_server_running?, to: :@vite_rails
52
48
 
53
49
  # NOTE: Auto compilation is convenient when running tests, when the developer
54
50
  # won't focus on the frontend, or when running the Vite server is not desired.
@@ -59,9 +55,9 @@ private
59
55
  # Internal: Finds the specified entry in the manifest.
60
56
  def find_manifest_entry(name)
61
57
  if dev_server_running?
62
- "/#{ config.public_output_dir.join(name.to_s) }"
63
- elsif file = manifest.dig(name.to_s, 'file')
64
- "/#{ config.public_output_dir.join(file) }"
58
+ { 'file' => "/#{ config.public_output_dir.join(name.to_s) }" }
59
+ else
60
+ manifest[name.to_s]
65
61
  end
66
62
  end
67
63
 
@@ -83,7 +79,10 @@ private
83
79
  # Internal: Returns a Hash with the entries in the manifest.json.
84
80
  def load_manifest
85
81
  if config.manifest_path.exist?
86
- JSON.parse(config.manifest_path.read)
82
+ JSON.parse(config.manifest_path.read).each do |_, entry|
83
+ entry['file'] = within_public_output_dir(entry['file'])
84
+ entry['imports'] = entry['imports']&.map { |path| within_public_output_dir(path) }
85
+ end
87
86
  else
88
87
  {}
89
88
  end
@@ -96,6 +95,11 @@ private
96
95
  "#{ name }.#{ extension_for_type(entry_type) }"
97
96
  end
98
97
 
98
+ # Internal: Scopes the paths in the manifest to the output folder in public.
99
+ def within_public_output_dir(path)
100
+ "/#{ config.public_output_dir.join(path) }"
101
+ end
102
+
99
103
  # Internal: Allows to receive :javascript and :stylesheet as :type in helpers.
100
104
  def extension_for_type(entry_type)
101
105
  case entry_type
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class ViteRails
4
- VERSION = '1.0.1'
4
+ VERSION = '1.0.6'
5
5
  end
@@ -2,27 +2,11 @@
2
2
  "name": "only-for-workflows",
3
3
  "version": "unknown",
4
4
  "scripts": {
5
- "test": "jest",
6
- "lint": "eslint package/"
5
+ "lint": "npm -C package run lint",
6
+ "test": "npm -C package run test"
7
7
  },
8
8
  "dependencies": {
9
- "vite": "^2.0.0-beta.30",
10
- "vite-plugin-ruby": "1.0.0"
11
- },
12
- "devDependencies": {
13
- "@vitejs/plugin-vue": "^1.0.6",
14
- "eslint": "^7.16.0",
15
- "eslint-config-airbnb": "^18.2.0",
16
- "eslint-config-prettier": "^7.1.0",
17
- "eslint-plugin-import": "^2.22.1",
18
- "eslint-plugin-jsx-a11y": "^6.3.1",
19
- "eslint-plugin-react": "^7.21.4",
20
- "jest": "^26.5.3"
21
- },
22
- "jest": {
23
- "testRegex": "(/__tests__/.*|(\\.|/))\\.jsx?$",
24
- "roots": [
25
- "<rootDir>/package"
26
- ]
9
+ "vite": "^2.0.0-beta.34",
10
+ "vite-plugin-ruby": "^1.0.1"
27
11
  }
28
12
  }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vite_rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Máximo Mussini
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-19 00:00:00.000000000 Z
11
+ date: 2021-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -119,7 +119,11 @@ files:
119
119
  - CONTRIBUTING.md
120
120
  - LICENSE.txt
121
121
  - README.md
122
+ - lib/install/bin/vite
122
123
  - lib/install/binstubs.rb
124
+ - lib/install/config/vite.config.ts
125
+ - lib/install/config/vite.json
126
+ - lib/install/javascript/entrypoints/application.js
123
127
  - lib/install/template.rb
124
128
  - lib/tasks/vite/binstubs.rake
125
129
  - lib/tasks/vite/build.rake
@@ -182,8 +186,8 @@ homepage: https://github.com/ElMassimo/vite_rails
182
186
  licenses:
183
187
  - MIT
184
188
  metadata:
185
- source_code_uri: https://github.com/ElMassimo/vite_rails/tree/v1.0.1
186
- changelog_uri: https://github.com/ElMassimo/vite_rails/blob/v1.0.1/CHANGELOG.md
189
+ source_code_uri: https://github.com/ElMassimo/vite_rails/tree/v1.0.6
190
+ changelog_uri: https://github.com/ElMassimo/vite_rails/blob/v1.0.6/CHANGELOG.md
187
191
  post_install_message:
188
192
  rdoc_options: []
189
193
  require_paths: