我有一个简单的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
所有样式文件都在同一个文件夹中,当我使用npm版本在命令行上执行手写笔时,导入工作正常,因此没有语法错误。
这只是rake-pipeline-web-filters中Stylus Filter缺少的东西,还是我可以做些什么来使它工作?
答案 0 :(得分:0)
好吧,看起来当我在Rake Pipeline中运行假设所有路径都从我正在运行管道的目录开始时,所以所有@imports都必须相对于那个。将我的导入更改为@import "app/style/appmixins"
。这与Stylus的NPM版本不同,因为它期望(和文档指定)所有路径都相对于单个样式表。不确定我是否可以在Assetfile中以不同方式指定块以使其按预期工作,但无论如何,它现在对我有用。