2015-11-19 10 views
5

Punch静的サイト生成プログラムのプリプロセッサautoprefixerを実装したいと思います。パンチオートプレフィクサープリプロセッサーはどのように実装しますか?

しかし、パンチの言葉では、これがコンパイラ、小型化装置などとして認定されるかどうかはわかりません。上記のすべてを無駄に試しました。

ここ作業を得ることで、私の最新の試みです:

./autoprefixer.js

module.exports = { 
    input_extensions: [".css"], 
    force_compile: true, 
    compile: function(input, filename, callback){ 
     return callback(null, "*{color: red;}"); 
    } 
}; 

config.json

... 
    "plugins": { 
     "compilers": { 
      ".css": "punch-sass-compiler", 
      ".css": "autoprefixer" 
     } 
    } 
... 

result

/home/peter/projects/website/node_modules/punch/lib/asset_bundler.js:62 
         if (compiler && compiler.input_extensions.indexOf(template_extension) > -1) 
                   ^
TypeError: Cannot read property 'indexOf' of undefined 
    at /home/peter/projects/website/node_modules/punch/lib/asset_bundler.js:62:45 
    at /home/peter/projects/website/node_modules/punch/lib/template_handler.js:119:11 
    at fs.js:334:14 
    at /home/peter/projects/website/node_modules/punch/node_modules/fstream/node_modules/graceful-fs/graceful-fs.js:42:10 
    at FSReqWrap.oncomplete (fs.js:95:15) 

誰もが正しい方向に私を操縦することはできますか?

答えて

1

現時点では、パンチコンパイラは異なる拡張子(たとえば.mycssまたは.less)からしかコンパイルできないようです。あなたはほとんどそこにいる、という使い方:module.exports

input_extensions:は、例えば、あなたが望む拡張子(ない.css)に設定する必要があります[".mycss"]

"plugins": { 
    "compilers": { 
     ".css": "punch-sass-compiler", 
     ".css": "autoprefixer" 
    } 
} 

あなたは二度同じキーを定義していることから、本当に不思議です。 punch-sass-compiler行を削除します。別のコンパイラを呼び出す場合は、単にコンパイラのコードにrequireモジュールを置き、他のコンパイラを呼び出して、指定された出力を好みに合わせて変更します。

パンチマイナーは開発中でなく、生産にのみ関与するため(punch g)、目標には適していません。

+0

ありがとうございます!この情報はすべて非常に便利です。 (重複したキーを見落としていたとは思えませんが···...)自分で見ていきますが、一般的な拡張機能のサポートを追加することが可能かどうかは分かりますか?既存の動作は予想外です。多すぎる仕事でなければ、私はパッチを提出することを検討するかもしれません。しかし、上流のプロジェクトが放棄されたように見えます。 – pdoherty926

+0

@ pdoherty926出力拡張子は出力と異なる必要があります。あなたの入力ファイルがとにかく悲鳴を上げる場合は、名前を '.scss'にしてみてください。 – phihag

関連する問題