【发布时间】:2021-11-29 07:24:38
【问题描述】:
我一直在尝试没有webpacker 的新Rails 解决方案,但使用css-bundling 和js-bundling。 css-bundling 带有一些“预先选择”,例如 TailwindCSS。
安装时,将资产管道中的构建 css 步骤与 package.json 中的命令链接起来,就像 package.json 中的这样:
"build:css": "tailwindcss -i ./app/assets/stylesheets/application.tailwind.css -o ./app/assets/builds/application.css"
这可以正常工作。
现在问题来了。我正在使用 ActiveAdmin gem,它使用以下代码创建 active_admin.scss 文件:
@import "active_admin/mixins";
@import "active_admin/base";
问题是,如果我尝试使用 TailwindCSS 作为预处理器编译这个 CSS,它无法找到导入:
tailwindcss --postcss -i app/assets/stylesheets/active_admin.sass.scss -o active_admin.css --trace-warnings
(node:52651) UnhandledPromiseRejectionWarning: Error: Failed to find 'active_admin/mixins'
in [
.../app/assets/stylesheets
]
at .../node_modules/postcss-import/lib/resolve-id.js:35:13
at async LazyResult.runAsync (.../tailwindcss/peers/index.js:57896:11)
(Use `node --trace-warnings ...` to show where the warning was created)
所以我假设无法在 gems 中找到所需的 CSS。问题是:你知道如何告诉 css-bundling 将 CSS 定位在不同的地方吗?我还假设 sprockets 足够聪明,但我不知道如何处理 package.json 中的 css-bundling + build:css 命令
谢谢!
【问题讨论】:
-
您找到解决方案了吗?我正在尝试做同样的事情,感觉就像我让 css 可以工作,但 js 部分更难
-
不,我还没有找到解决方案:(
-
我想我找到了,但它并不漂亮。您基本上需要编写多个构建脚本来为您的资产管道创建单独的 application.css 和 active_admin.css。如果它代表您的主要障碍,我可以分享代码。在一天结束时,我决定在 Rails 6 之外使用 Active Admin,因为我厌倦了尝试让 Rails 升级和 AA 升级玩得很好。
-
非常感谢 Randy,我想有了这些信息,我会尝试看看它是否有效!
标签: css ruby-on-rails sass