diff --git a/examples/rails/vite.config.ts b/examples/rails/vite.config.ts index b6c707e7..2c1d831a 100644 --- a/examples/rails/vite.config.ts +++ b/examples/rails/vite.config.ts @@ -4,6 +4,8 @@ import rails from 'vite-plugin-rails' import WindiCSS from 'vite-plugin-windicss' import BugsnagPlugins from './plugins/bugsnag' +const administratorAssetsPath = process.env.ADMINISTRATOR_ASSETS_PATH + export default defineConfig({ plugins: [ BugsnagPlugins, @@ -26,13 +28,13 @@ export default defineConfig({ ], // Example: Importing assets from arbitrary paths. resolve: { - alias: { - '@administrator/': `${process.env.ADMINISTRATOR_ASSETS_PATH}/`, - }, + alias: administratorAssetsPath + ? { '@administrator/': `${administratorAssetsPath}/` } + : {}, }, server: { fs: { - allow: [process.env.ADMINISTRATOR_ASSETS_PATH!], + allow: administratorAssetsPath ? [administratorAssetsPath] : [], }, }, }) diff --git a/vite-plugin-rails/tests/build.spec.ts b/vite-plugin-rails/tests/build.spec.ts index 4373364d..bd59b2ed 100644 --- a/vite-plugin-rails/tests/build.spec.ts +++ b/vite-plugin-rails/tests/build.spec.ts @@ -22,7 +22,6 @@ describe('config', () => { 'assets/external-BwssHmjP.js', 'assets/external-BwssHmjP.js.br', 'assets/external-BwssHmjP.js.gz', - 'assets/external-BwssHmjP.js.map', 'assets/index-qTzjl5TV.js', 'assets/index-qTzjl5TV.js.br', 'assets/index-qTzjl5TV.js.gz', @@ -34,7 +33,6 @@ describe('config', () => { 'assets/main-Ddvw3iap.js', 'assets/main-Ddvw3iap.js.br', 'assets/main-Ddvw3iap.js.gz', - 'assets/main-Ddvw3iap.js.map', 'assets/sassy-D5kz_As0.css', 'assets/sassy-D5kz_As0.css.br', 'assets/sassy-D5kz_As0.css.gz', @@ -47,7 +45,6 @@ describe('config', () => { 'assets/vue-CoJ_KGkH.js', 'assets/vue-CoJ_KGkH.js.br', 'assets/vue-CoJ_KGkH.js.gz', - 'assets/vue-CoJ_KGkH.js.map', 'index.html', 'index.html.br', 'index.html.gz', diff --git a/vite-plugin-ruby/src/index.ts b/vite-plugin-ruby/src/index.ts index 4a370d2f..fb2f372e 100644 --- a/vite-plugin-ruby/src/index.ts +++ b/vite-plugin-ruby/src/index.ts @@ -60,7 +60,6 @@ function config (userConfig: UserConfig, env: ConfigEnv): UserConfig { const build = { emptyOutDir: userConfig.build?.emptyOutDir ?? (ssrBuild || isLocal), - sourcemap: !isLocal, ...userConfig.build, assetsDir, manifest: !ssrBuild, @@ -108,6 +107,7 @@ function configureServer (server: ViteDevServer) { res.statusCode = 404 const file = readFileSync(resolve(__dirname, 'dev-server-index.html'), 'utf-8') res.end(file) + return } next() diff --git a/vite-plugin-ruby/tests/index.spec.ts b/vite-plugin-ruby/tests/index.spec.ts index 10f3c572..22597c67 100644 --- a/vite-plugin-ruby/tests/index.spec.ts +++ b/vite-plugin-ruby/tests/index.spec.ts @@ -8,21 +8,23 @@ describe('config', () => { const pluginConfig = plugin[0].config defaultConfig.configPath = './default.vite.json' + // Sourcemap is no longer set by the plugin (Vite's safe default of `false` + // applies in all modes). Users opt in via `build.sourcemap` in their vite.config. const productionConfig = pluginConfig(defaultConfig, { mode: 'production' }) expect(productionConfig.build.emptyOutDir).toBe(false) - expect(productionConfig.build.sourcemap).toBe(true) + expect(productionConfig.build.sourcemap).toBeUndefined() const stagingConfig = pluginConfig(defaultConfig, { mode: 'staging' }) expect(stagingConfig.build.emptyOutDir).toBe(false) - expect(stagingConfig.build.sourcemap).toBe(true) + expect(stagingConfig.build.sourcemap).toBeUndefined() const developmentConfig = pluginConfig(defaultConfig, { mode: 'development' }) expect(developmentConfig.build.emptyOutDir).toBe(true) - expect(developmentConfig.build.sourcemap).toBe(false) + expect(developmentConfig.build.sourcemap).toBeUndefined() const testConfig = pluginConfig(defaultConfig, { mode: 'test' }) expect(testConfig.build.emptyOutDir).toBe(true) - expect(testConfig.build.sourcemap).toBe(false) + expect(testConfig.build.sourcemap).toBeUndefined() expect(() => { pluginConfig({ ...defaultConfig, build: { ssr: true } }, { mode: 'production' }) diff --git a/vite_ruby/lib/vite_ruby.rb b/vite_ruby/lib/vite_ruby.rb index 9c16e02a..daf6631f 100644 --- a/vite_ruby/lib/vite_ruby.rb +++ b/vite_ruby/lib/vite_ruby.rb @@ -69,6 +69,7 @@ def framework_libraries def initialize(**config_options) @config_options = config_options + @running_mutex = Mutex.new end def logger @@ -85,15 +86,18 @@ def digest # NOTE: Checks only once every second since every lookup calls this method. def dev_server_running? return false unless run_proxy? - return @running if defined?(@running) && Time.now - @running_checked_at < 1 - - begin - Socket.tcp(config.host, config.port, connect_timeout: config.dev_server_connect_timeout).close - @running = true - rescue - @running = false - ensure - @running_checked_at = Time.now + + @running_mutex.synchronize do + return @running if defined?(@running) && Time.now - @running_checked_at < 1 + + begin + Socket.tcp(config.host, config.port, connect_timeout: config.dev_server_connect_timeout).close + @running = true + rescue + @running = false + ensure + @running_checked_at = Time.now + end end end