【问题标题】:Webpacker can't find application.js in manifest.json Heroku ProductionWebpacker 在 manifest.json Heroku Production 中找不到 application.js
【发布时间】:2018-07-04 19:02:14
【问题描述】:

我在 heroku 上的应用遇到了 webpacker 问题。

日志:

ActionView::Template::Error (Webpacker can't find application.js in /app/public/packs/manifest.json. Possible causes:
2018-07-04T18:47:08.192729+00:00 app[web.1]: 1. You want to set webpacker.yml value of compile to true for your environment
2018-07-04T18:47:08.192730+00:00 app[web.1]:    unless you are using the `webpack -w` or the webpack-dev-server.
2018-07-04T18:47:08.192733+00:00 app[web.1]: 2. webpack has not yet re-run to reflect updates.
2018-07-04T18:47:08.192734+00:00 app[web.1]: 3. You have misconfigured Webpacker's config/webpacker.yml file.
2018-07-04T18:47:08.192735+00:00 app[web.1]: 4. Your webpack configuration is not creating a manifest.
2018-07-04T18:47:08.192737+00:00 app[web.1]: Your manifest contains:
2018-07-04T18:47:08.192738+00:00 app[web.1]: {
2018-07-04T18:47:08.192740+00:00 app[web.1]: }
2018-07-04T18:47:08.192741+00:00 app[web.1]: ):

我有一个包含application.jsmanifest.json 文件:

{
  "application.css": "/packs/application-c922057d6b9db34084d6e52c6f32baa9.css",
  "application.css.map": "/packs/application-c922057d6b9db34084d6e52c6f32baa9.css.map",
  "application.js": "/packs/application-ab33c1479403810d7775.js",
  "application.js.map": "/packs/application-ab33c1479403810d7775.js.map"
}

日志的最后一行很有意思:

2018-07-04T18:47:08.192737+00:00 app[web.1]: Your manifest contains:
2018-07-04T18:47:08.192738+00:00 app[web.1]: {
2018-07-04T18:47:08.192740+00:00 app[web.1]: }

json 格式是否有问题?

我已经尝试运行 bundle exec rails webpacker:compile,这很好,我还更新了 binstub bundle exec rails webpacker:binstubs,在推送到 Heroku 之后似乎都没有改变。

我还能尝试什么?

【问题讨论】:

    标签: heroku webpack


    【解决方案1】:
    • 我删除了文件夹node_modules
    • 然后在终端yarn add @rails/webpacker@next
    • 然后bundle exec rails webpacker:install

    之后就解决了

    【讨论】:

    • 我尝试了很多东西,真的......很多东西,但这个对我有用
    • 我的英雄!!!如果你在温哥华,我会带你出去吃午饭。
    • 非常感谢。
    【解决方案2】:

    我遇到了同样的问题,并花了几天时间试图解决它。终于安装了 webpacker 3.5 并且工作正常。

    这不是最好的解决方案,但可以启动我的应用程序。我去了一个兔子洞试图解决这个问题。

    【讨论】:

    • 不幸的是,一年后您的回复仍然有效。我不得不从 3.5 更新到 4.0 才能工作,经过多天和几次失败的尝试来解决这个问题。仍然不知道是什么原因造成的,但现在可以工作了。
    • 一团糟,现在在 webpack 6 上,所以它已经过时了。有趣的是它以前发生过,我已经修好了..然后它又发生了(!!)。 webpack(er) 需要从互联网上删除。
    【解决方案3】:
    bundle exec bin/webpack-dev-server
    

    这个命令解决了我的问题。我是 webpack 的新手,所以我不知道如何/为什么。

    【讨论】:

    • 在生产环境中运行开发服务器并不是您真正想要的。
    【解决方案4】:

    如果您仍然坚持这一点,我遇到了完全相同的问题,似乎没有其他答案可以为我解决。这个 GH 线程建议确保资产没有在本地预编译(通过删除 /public/assets/public/packs 目录,基本上鼓励 Heroku 自己编译。现在似乎已经为我解决了这个问题。

    https://github.com/rails/webpacker/issues/532

    【讨论】:

    • 如果你这样做,预编译资产将会失败,并且不会部署在 Heroku 上。
    【解决方案5】:

    我遇到了完全相同的错误。如果您还没有尝试过,请尝试一下。

    运行bundle exec rails webpacker:install

    检查控制台日志中的错误消息

    The engine "node" is incompatible with this module. Expected version ">= 10.13.0". Got "10.0.0"
    error Found incompatible module.
    

    如果是,那么您可以通过 3 个步骤解决此问题:

    $ node -v 检查你的节点版本

    $ nvm install 'required node version'更改节点版本

    $ bundle exec rails webpacker:install 它将验证您的 package.json,解析并获取所有包,链接并保存依赖项

    【讨论】:

      【解决方案6】:

      在我的例子中,以下步骤有助于 webpacker 找不到新添加的包文件

      RAILS_ENV=staging rake  assets:clean
      
      rake assets:clobber
      
      RAILS_ENV=production rake assets:precompile
      

      【讨论】:

        猜你喜欢
        • 2023-04-07
        • 2021-12-22
        • 2019-10-14
        • 2020-04-26
        • 2021-04-27
        • 1970-01-01
        • 2020-06-26
        • 1970-01-01
        • 2021-02-04
        相关资源
        最近更新 更多