You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

部署Rails 8+Vite应用到Railway时出现vite二进制文件不可用错误

修复Railway部署Rails+Vite时的Vite二进制文件缺失问题

核心原因

Railway部署环境默认未安装Node.js/npm,或构建流程未正确执行前端依赖安装、静态资源预编译操作,导致Rails无法调用Vite相关命令。

具体修复步骤

1. 配置Railway安装Node.js

在项目根目录创建railway.toml文件,指定Node.js版本与安装命令:

[build]
installCommand = "nvm install 20 && npm install"

也可在package.json中声明Node版本,Railway会自动识别适配:

{
  "engines": {
    "node": ">=20.0.0"
  }
}

2. 调整部署构建命令

修改railway.toml,明确包含前端依赖安装与静态资源预编译步骤:

[build]
buildCommand = "bundle install && npm install && rails assets:precompile"

或直接在Railway控制台的部署设置中,将构建命令替换为上述内容。

同时在config/application.rb中添加Vite manifest文件到预编译列表:

config.assets.precompile += %w( vite-manifest.json )

3. 校验Vite生产环境配置

确保config/vite.json的生产环境配置启用预编译模式:

{
  "production": {
    "build_command": "npm run build",
    "public_output_dir": "public/vite",
    "manifest": true
  }
}

并确认package.json中存在正确的build脚本:

{
  "scripts": {
    "build": "vite build"
  }
}

4. 指定Node/npm执行路径

若仍提示找不到npx,可在config/initializers/vite.rb中手动指定路径(路径需匹配Railway环境实际Node安装位置,可从部署日志中获取):

ViteRuby.configure do |config|
  config.node = "/usr/local/bin/node"
  config.npx = "/usr/local/bin/npx"
end

5. 验证构建日志

部署时查看Railway构建日志,确认以下操作完成:

  • Node.js与npm成功安装
  • npm install完成所有前端依赖下载
  • rails assets:precompile触发Vite build,生成public/vite-manifest.json文件

内容的提问来源于stack exchange,提问作者Leandro Pinheiro Tavares

火山引擎 最新活动