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

Rails 6运行报Webpacker::Manifest::MissingEntryError错误如何解决?

解决方案步骤

1. 补全webpack依赖并重新初始化webpacker

出现error Command "webpack" not found是因为缺少webpack核心依赖和cli工具,先执行以下命令修复依赖问题:

  • 先删除现有存在冲突的node依赖和锁文件:
rm -rf node_modules yarn.lock package-lock.json
  • 执行webpacker官方初始化命令,会自动适配你项目中webpacker版本安装对应兼容的webpack相关依赖,比手动安装更准确:
rails webpacker:install

执行过程中如果提示覆盖配置文件,可先备份你修改过的配置后选择同意覆盖。

  • 重新安装所有依赖:
yarn install
bundle install

2. 验证webpacker基础配置

检查config/webpacker.yml文件,确认开发环境下的自动编译配置已开启:

development:
  <<: *default
  compile: true

开启后Rails会在开发环境自动编译webpack资源,不需要手动启动webpack服务。

3. 恢复JavaScript功能和删除确认提示

把之前从application.html.erb中删除的<%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>代码恢复。
再检查app/javascript/packs/application.js文件,确认已经引入了rails-ujs和turbolinks:

import Rails from "@rails/ujs"
import Turbolinks from "turbolinks"
import * as ActiveStorage from "@rails/activestorage"
import "channels"

Rails.start()
Turbolinks.start()
ActiveStorage.start()

删除确认提示消失就是因为rails-ujs没有正常加载,这个库负责处理link_to的delete方法和确认弹窗逻辑,加载正常后不需要把link_to替换为button_to也可以正常触发删除和确认提示。

4. 验证修复效果

执行以下命令预编译资源,确认没有webpack相关报错:

rails assets:precompile

之后启动Rails服务,访问页面测试删除功能的确认弹窗是否正常弹出即可。

额外排查点

如果依然报错,检查Manjaro系统的nodejs和yarn版本是否符合webpacker 5的要求:

  • nodejs版本需要 >= 12.x
  • yarn版本需要 >= 1.22.x
    可以通过node -v和yarn -v查看版本,版本过低的话用pacman包管理器更新即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 20:54:01