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
相关产品推荐
相关产品推荐

