【发布时间】:2022-06-20 16:34:28
【问题描述】:
我面临在新的 spree 4.4 上找不到“spree-dashboard.js”文件。它不是通过运行 yarn install 来修复的。
【问题讨论】:
标签: ruby-on-rails spree
我面临在新的 spree 4.4 上找不到“spree-dashboard.js”文件。它不是通过运行 yarn install 来修复的。
【问题讨论】:
标签: ruby-on-rails spree
检查你在 app/javascript 中是否有一个并将其复制到 app/assets/javascripts 并查看它是否可以解决。
我找到了该文件,然后将它放到了它正在查找的路径之一中。
【讨论】:
安装 gem 'turbo-rails' 而不是 turbolinks
如需进一步帮助,请点击链接:如何从 Turbolinks 迁移到 Turbo https://www.honeybadger.io/blog/hb-turbolinks-to-turbo/
【讨论】:
我遇到了同样的问题并找到了解决方案。 Spree 文档指导我们安装 esbuild。 但是文档从未解释过如何实际使用 esbuild 来构建我们的 JS。
您通常会在 Gemfile.lock 中添加 jsbundling-rails。您可以在此处找到有关该宝石的更多信息:https://github.com/rails/jsbundling-rails
要开始一个新的 Spree 项目,最好使用 esbuild 生成 rails 项目,感谢这个命令:
rails new myapp -j esbuild
这样应用程序就已经在使用 esbuild,这是 spree 使用的技术。
否则,您将不得不从 webpacker 迁移到 esbuild。我在这里找到了一个不错的教程:https://dev.to/thomasvanholder/how-to-migrate-from-webpacker-to-jsbundling-rails-esbuild-5f2
最后,要使用 esbuild 构建 JS,您可以将此行添加到 package.json 中的“脚本”中:
"build": "esbuild app/javascript/*.* --bundle --sourcemap --outdir=app/assets/builds"
安装esbuild的时候一般会在终端打印出来,但是很容易漏掉。
当您运行 yarn build 时,此命令将在 app/assets/builds 中生成正确的 spree-dashboard.js 文件。
此外,esbuild install 命令在 Procfile.dev 中添加了一个带有“watch”选项的行。您最终会希望使用./bin/dev 启动项目,它会启动一个处理 Procfile.dev 中内容的 Foreman 进程。
最后,作为奖励,我还学习了这个不错的教程:https://noelrappin.com/blog/2021/12/typescript-and-jsbundling-and-rails-7/
这可以帮助您设置 esbuild + jsbundling-rails + typescript。如果你喜欢 typescript,这是在 Rails 项目中与 esbuild 一起使用的一种简单方法。
【讨论】:
我遇到了同样的问题,webpack 正在寻找“@spree/dashboard”。
安装那个包解决了这个问题
yarn add @spree/dashboard
【讨论】: