1

我创建了一个新的 Rails 应用程序,之后我安装了引导程序cssbundling-rails

我现在收到一个错误The asset "application.css" is not present in the asset pipeline.为了让应用程序运行,我需要运行以下脚本 "scripts": { "build:css": "sass ./app/assets/stylesheets/application.bootstrap.scss ./app/assets/builds/application.css --no-source-map --load-path=node_modules" }, 只有在那之后才会在资产/构建路径上创建一个应用程序文件。但是我不想每次更新 css 文件时都运行这个命令,我希望服务器在不运行 yarn 脚本的情况下选择这些更新。我怎样才能做到这一点?

4

1 回答 1

0

我最近遇到了一个类似的问题,问题的根源实际上是 npm 和 yarn。

使用正确配置的应用程序cssbundling-rails不需要运行命令

"scripts": { "build:css": "sass ./app/assets/stylesheets/application.bootstrap.scss ./app/assets/builds/application.css --no-source-map --load-path=node_modules" },

让应用程序生成build/application.css

npm 已知问题

检查你的 npm 版本,如果你没有使用 npm 7.1+ 会有一个问题,这基本上会阻止纱线正确设置。

运行npm -v,如有必要,升级 npmnpm install -g npm@latest

如果必须升级 npm,则需要关闭终端并启动一个新终端,验证 npm 版本是否大于 7.1。

升级后重新运行rails css:install:bootstrap

一切都应该正确配置。

捆绑观察者

cssbundling-rails 的文档中 “您可以使用这种方法进行开发,方法是在终端中以监视模式运行捆绑器yarn build:css --watch(如果您不使用类似puma-dev 的东西,则在另一个终端中运行您的 Rails 服务器)。您也可以使用./bin/dev,这将同时启动 Rails 服务器和 CSS 构建观察器(以及 JS 构建观察器,如果你也在使用的话jsbundling-rails)。”

因此,您可以yarn build:css --watch从 Rails 应用程序中的单独终端运行,也可以只使用./bin/dev任何一种方式都可以解决您遇到的问题。

于 2022-01-21T03:04:10.617 回答