我想为autoprefixer静态网站生成器实现Punch预处理器。
但是,以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)
谁能指引我正确的方向?
最佳答案
目前看来,打孔编译器只能从其他扩展名编译(例如.mycss
或.less
)。使用它,您几乎可以到达那里:
在module.exports
中,必须将input_extensions:
设置为所需的扩展名(而不是.css
),例如[".mycss"]
。
"plugins": {
"compilers": {
".css": "punch-sass-compiler",
".css": "autoprefixer"
}
}
真的很奇怪,因为您两次定义了相同的键。删除
punch-sass-compiler
行。如果要调用另一个编译器,只需在编译器的代码中require
它的模块,调用另一个编译器,然后根据自己的喜好修改提供的输出。打孔器不适合您的目标,因为它们仅参与生产(使用
punch g
),而不参与开发。