0

我有一个简单的 Rake Pipeline 设置,它只使用 rake-pipeline-web-filters gem 在我的 .styl 文件上运行“stylus”。(原始管道做得更多,但我已将其精简为这个问题的基本要素。

=== Assetfile ===
require "rake-pipeline-web-filters"

output "build"

input "app/style" do
  # Compile Stylus to CSS
  match "*.styl" do
    stylus
  end
end

这适用于将单个 .styl 文件转换为单个 .css 文件。

但是,我无法使用 Stylus @import 命令将一个文件导入另一个文件(对于 mixins 等是必需的。相反,我得到了错误

ExecJS::ProgramError: Error: stylus:1
 > 1| @import "appmixins"
   2| 

failed to locate @import file appmixins.styl

所有 styl 文件都在同一个文件夹中,当我使用 npm 版本在命令行上执行 stylus 时,导入工作正常,因此没有语法错误。

这只是 rake-pipeline-web-filters 中的 Stylus 过滤器中缺少的东西,还是我可以做些什么来使它工作?

4

1 回答 1

0

好的,看起来当我在 Rake Pipeline 中运行时,假设所有路径都从我正在运行管道的目录开始,因此所有 @imports 都必须与该目录相关。将我的导入更改为@import "app/style/appmixins"有效。这与 Stylus 的 NPM 版本不同,因为它期望(并且文档指定)所有路径都相对于单个样式表。不确定我是否可以在 Assetfile 中以不同的方式指定块以使其按预期工作,但无论如何,现在一切都对我有用。

于 2012-12-06T14:13:12.537 回答