我正在尝试使用磁带和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文件,以便在浏览器中不会从它们中获取语法错误?