5

Punch静的サイト ジェネレーター用のautoprefixer プリプロセッサを実装したいと考えています。

ただし、Punch の用語では、これがコンパイラ、ミニファイヤなどに該当するかどうかはわかりません。上記のすべてを試してみましたが、役に立ちませんでした。

何かを機能させるための私の最近の試みは次のとおりです。

./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)

誰かが私を正しい方向に導くことができますか?

4

1 に答える 1

1

現時点では、パンチ コンパイラは別の拡張子 (.mycssまたは など.less) からしかコンパイルできないようです。それを使用すると、ほとんどそこにいます:

ではmodule.exportsinput_extensions:必要な拡張子に設定する必要があります ( ではありません.css) [".mycss"]

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

同じキーを2回定義しているので、本当に奇妙です。行を削除しpunch-sass-compilerます。別のコンパイラを呼び出したい場合は、単にrequireコンパイラのコード内のそのモジュールを呼び出すだけで、別のコンパイラを呼び出して、提供された出力を好みに合わせて変更します。

パンチミニファイアーは、開発時ではなく、生産にのみ関与するため ( を使用)、目的には適していませpunch gん。

于 2015-12-10T00:42:28.937 に答える