You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails7部署Heroku时遇'tailwindcss/defaultTheme'模块找不到错误

问题

部署Rails 7应用到Heroku时,执行Running: rake assets:precompile失败,报错:

Error: Cannot find module 'tailwindcss/defaultTheme' when deploying to Heroku

已尝试运行RAILS_ENV=production bundle exec rake assets:precompile,问题未解决。
使用gem "tailwindcss-rails", "~> 2.0"为Rails应用集成TailwindCSS,本地通过bin/dev或bin/dev后启动rails s运行一切正常。

附tailwind.config.js代码:

const defaultTheme = require('tailwindcss/defaultTheme')

module.exports = {
  content: [
    './public/*.html',
    './app/helpers/**/*.rb',
    './app/javascript/**/*.js',
    './app/views/**/*',
    './node_modules/flowbite/**/*.js'
  ],
  theme: {
    extend: {
      fontFamily: {
        sans: ['Inter var', ...defaultTheme.fontFamily.sans],
      },
      colors: {
        primary: "#000000",
        action: "#000000",
        "action-hover": "#000000"
      }
    },
  },
  plugins: [
    require('@tailwindcss/forms'),
    require('@tailwindcss/aspect-ratio'),
    require('@tailwindcss/typography'),
    require('@tailwindcss/container-queries'),
    require('flowbite/plugin')
  ]
}
解决方案
  • 对齐本地与Heroku的Node.js版本
    本地运行node -v查看版本,在项目根目录创建.node-version文件,写入对应版本号(如18.17.0),提交代码后重新部署,避免因Node版本差异导致依赖解析错误。

  • 确保Tailwind依赖完整
    运行bundle exec rails tailwindcss:install重新初始化Tailwind配置,确保所有关联依赖都正确安装,覆盖可能缺失的文件或配置。

  • 清除Heroku构建缓存
    缓存可能导致依赖残留或缺失,执行以下命令清除缓存后重新部署:

    heroku builds:cache:purge
    
  • 配置Heroku构建包顺序
    Rails 7前端资产需要Node.js处理,确保Heroku先安装Node依赖再处理Ruby:

    heroku buildpacks:add --index 1 heroku/nodejs
    heroku buildpacks:add --index 2 heroku/ruby
    
  • 调整Tailwind配置的导入语法(备选)
    若上述方法无效,将tailwind.config.js中的导入语句修改为:

    const defaultTheme = require('tailwindcss').defaultTheme
    

    适配部分版本的导入路径差异。

内容的提问来源于stack exchange,提问作者crodev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 18:17:31