提问者:小点点

Web打包器::清单::缺少条目错误


我已经使用rails new--webpack=react启动了一个rails项目。

我在Database. yml中生成了一个新控制器更新了我的PostgreSQL密码。

到目前为止,一切正常。在这一点上,我所要做的就是让react呈现默认的hello_react. jsx文件,该文件是由rails作为示例生成的。

当我把

Webpacker::清单::MissingEntryError in Home#index显示G:/…/…/…/myGroceryList/app/view/home/index. html.erb其中第1行引发:

Webpacker在G:/…/…/…/myGroceryList/public/packs/清单. json中找不到hello_react.js。可能的原因:

除非您使用webpack-w或webpack-dev-server,否则您希望为您的环境将compile的webpack. yml值设置为true。webpack尚未重新运行以反映更新。您错误配置了Webpacker的config/webpacker.yml文件。您的webpack配置没有创建清单。您的清单包含:{}

我已将项目推送到GitHub。有什么问题以及如何修复此错误的想法吗?

已解决:评论中的决议


共2个答案

匿名用户

强尼·B

我遇到了同样的问题。我能够确定我需要将“. jsx”添加到我的webpacker.yml

   extensions:
     - .js
+    - .jsx
     - .sass
     - .scss
     - .css

我还发现webpacker: compile在页面刷新或文件更改时没有运行。我需要在每次更改后手动运行bundle exec rake资产:precompile(或bundle exec rake webpacker:compile)才能重新加载并查看更改。

我通过ApacheMod_Passenger运行应用程序,而不是使用rails s(我同时开发了太多的应用程序,无法在命令行上继续启动和停止服务器)。这似乎不适用于Webpacker的按需编译功能。使用rails s启动服务器将允许我在localhost:3000上点击应用程序,但react应用程序无法正确渲染。在3000上通过Puma服务器点击页面后,我现在可以看到编译后的资产在我的Apache/Passenger实例中工作。因此,按需编译似乎只有在命令行(rails s)上启动的服务器中运行时才能正常工作…无法正确呈现。:-/

另一种选择(比运行2台服务器更好)是在命令行上使用bundle exec rake资产进行编译:precompilebundle exec rake webpacker:每当您进行更改时编译。仍然是PITA,但至少它可以工作…目前。如果我找到更好的解决方案,我会更新答案。

经过多次尝试,安装不同版本的NodeJS、Ruby、rbenv、nvm等。,我能够确定NODE_ENV没有为Apache/Passenger环境设置。使用Rbenv,我能够在我的应用根目录中添加一个. rbenv-vars文件,其中包含:

NODE_ENV=development
RACK_ENV=development
RAILS_ENV=development

现在,Webpacker(和NodeJS)看到我在开发而不是生产环境中运行,并且按需编译正在工作。

匿名用户

解决方案:当您的public/packs文件夹缺少清单文件或全部丢失时,我可以告诉您此错误会触发。在我的情况下,发生的事情是Webpackers编译步骤默默地失败并且没有创建public/packs文件夹。我为此检查了webpacker gem的修复程序。您可以在此处看到该修复和对话。

如果这是根本原因,那么您可以根据您喜欢安装node包yarn installnpm install的方式修复其中任何一个