在GraphQL标签加载器中使用业力打字稿

时间:2018-07-09 14:36:30

标签: graphql karma-typescript

我正在尝试使用磁带和karma-typescript加载器运行用TypeScript编写的测试。

在我的项目中,我将webpack与graphql-tag / loader一起使用,并将查询直接导入到我的TypeScript文件中,例如:

import myQuery from "../query/hello.graphql";

当我尝试运行测试时,这些导入会引起问题。

module.exports = function (config) {
    config.set({
        frameworks: ["tap", "karma-typescript"],
        files: [
            "src/**/*.ts",
            "src/**/*.tsx",
            "query/**/*.graphql"
        ],
        preprocessors: {
            "src/**/*.ts": ["karma-typescript"],
            "src/**/*.tsx": ["karma-typescript"]
        },
        karmaTypescriptConfig: {
            compilerOptions: {
                "skipLibCheck": true,
                "allowSyntheticDefaultImports": true
            },
            bundlerOptions: {
                transforms: [
                    require("karma-typescript-es6-transform")()
                ]
            }
        },
        reporters: ["progress", "karma-typescript"],
        browsers: ["Firefox"]
    });
};

我想我最好是对.graphql文件执行第二次转换。根据{{​​3}}中使用的方法,我尝试添加另一个转换:

function (context, callback) {
    if (/\.graphql$/.test(context.module)) {
        context.source = loader.call({ cacheable() { } }, context.source);
        return callback(undefined, true);
    }
    return callback(undefined, false);
}

但是我仍然收到类似以下错误:

  {
    "message": "SyntaxError: unexpected token: identifier\nat query/hello.graphql:1:6\n\n",
    "str": "SyntaxError: unexpected token: identifier\nat query/hello.graphql:1:6\n\n"
  }

如何将转换应用于graphql文件,以便在浏览器中不会从它们中获取语法错误?

0 个答案:

没有答案