Webpack Async Loader с внешним вызовом

Я пытаюсь написать свой первый Webpack Loader. Идея заключается в вызове graphql-to-json, чтобы я мог преобразовать свою схему graphql в JSON, который Response-Relay ожидает в качестве входных данных.

Я читаю документы, но никогда не получаю их для вывода файла. Он даже не попадает в console.log. Что я делаю неправильно?

(Я также чувствую, что есть лучший способ справиться с этим вне загрузчиков веб-пакетов, если таковой существует)

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 ответов

Другие вопросы по тегам