0

rake-pipeline-web-filters gemを使用して、.stylファイルで「スタイラス」を実行するだけの簡単なRakePipelineセットアップがあります。(元のパイプラインははるかに多くのことを行いますが、私はそれをこの質問の要点に切り詰めました。

=== 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コマンドを使用して、あるファイルを別のファイルにインポートすることはできません(特にミックスインに必要です。代わりにエラーが発生します)

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

failed to locate @import file appmixins.styl

すべてのstylファイルは同じフォルダーにあり、npmバージョンを使用してコマンドラインでスタイラスを実行すると、インポートは正常に機能するため、構文エラーは発生しません。

これは、rake-pipeline-web-filtersのスタイラスフィルターに欠けているものですか、それとも機能させるためにできることはありますか?

4

1 に答える 1

0

さて、Rake Pipelineを実行すると、すべてのパスがパイプラインを実行しているディレクトリから開始していると想定しているように見えます。したがって、すべての@importsはそれに関連している必要があります。インポートを機能するように変更し@import "app/style/appmixins"ます。これは、NPMバージョンのStylusが行うこととは異なります。これは、すべてのパスが個々のスタイルシートに相対的であると想定している(およびドキュメントで指定されている)ためです。この機能を期待どおりに機能させるために、Assetfileでブロックを別の方法で指定できたかどうかはわかりませんが、問題なく、すべてが機能するようになりました。

于 2012-12-06T14:13:12.537 に答える