带外部调用的Webpack异步加载程序

时间:2018-08-21 12:37:50

标签: javascript webpack graphql-js react-relay

我正在尝试编写我的第一个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')
        }
      }]
    }

0 个答案:

没有答案