我正在尝试编写我的第一个Webpack Loader。这个想法是调用graphql-to-json,以便我可以将我的graphql模式转换为React-Relay期望作为输入的JSON。
我阅读了文档,但始终无法输出文件。它甚至从未命中console.log。我在做什么错了?
(我也响应这样的想法:如果有的话,有一种更好的方法可以在webpack加载程序之外处理)
const graphqlToJson = require('graphql-to-json')
module.exports = function(sourceContent){
// this.cacheable();
var callback = this.async();
const fullPath = this.resourcePath;
const outputPath = `${fullPath.replace(/\.[^/.]+$/, "")}.json`
graphqlToJson({
input: this.resourcePath,
output: outputPath
}, function(schema) {
console.log('=== js schema output: ', schema)
callback(null, schema)
})
};
这是加载程序调用:
module: {
rules: [{
test: /\api\.js$/,
use: {
loader: path.resolve(__dirname, 'graphql-to-json-loader.js')
}
}]
}