{
"type": "module", //μ΄λ κ² λμ΄μμΌλ©΄ μλ¨
}
ꡬκΈμ λ€λ₯Έ λ°©λ²λ€μ΄ λ§μ΄ λμμμ§λ§ μΌλ¨ μ λ κ² λμ΄μμΌλ©΄ μμ νμ
graphql-tools λ₯Ό μ΄μ©ν΄μ μ¬λ¬ ν΄λ μλ schemaμ resolvers λ₯Ό μ μν νμΌμ λ§λ€κ³ schema.js
λΌλ νμΌλ‘ νκΊΌλ²μ λͺ¨λ μ€ν€λ§-리쑸λ²λ₯Ό μ½μ΄μ€λ μμ
μ νκ³ μμλ€.
import path from "path";
import { makeExecutableSchema } from "@graphql-tools/schema";
import { mergeTypeDefs, mergeResolvers } from "@graphql-tools/merge";
import { loadFilesSync } from "@graphql-tools/load-files";
const allTypes = loadFilesSync(path.join(__dirname, "./api/**/*.graphql"));
const allResolvers = loadFilesSync(path.join(__dirname, "./api/**/*.js"));
const schema = makeExecutableSchema({
typeDefs: mergeTypeDefs(allTypes),
resolvers: mergeResolvers(allResolvers),
});
export default schema;
__dirname is not defined
μκΎΈ μ΄λ° μλ¬κ° μ겨μ λλ체 무μμ΄ μμΈμΈκ° μ°Ύμ보μλ€.
μΌλ¨ export ν schema
κ° μμ νμΌλ‘ μ°κ²°μ΄ λλ κ±Έ 보면 λ€λ₯Έ λ¬Έμ λ μμκ³ ,
console.log(allTypes);
console.log(allResolvers);
// []
// []
λ₯Ό ν΄λ³΄λ λ°°μ΄μ΄ ν λΉμ΄μμλ€. μ΄κ² λ¬Έμ μμ...
// package.json
{
"type": "module",
}
μμ νλ λ°°μ΄μ μ€ν€λ§μ 리쑸λ²κ° λ€μ΄μλ€.
μ¬μ€ ꡬκΈλ§μ μ§μ§ 2μκ°μ ν κ±°κ°λ€... λͺ¨λ λ°©λ²μ λ€ μμλΆμλλ° ν΄κ²°μ΄ μλ¨... κ²°κ΅ ν΄κ²°μ νκΈ΄ νλλ° λ무 κ°λ¨ν λ¬Έμ μμ... μ λ²μ graphql μμ ν λλ type: module μ ν΄μ€¬μ΄μΌ ν΄μ μ²μλΆν° μ μ΄λκ³ μμνκ² νκ·Όμ΄μλ€.
2μκ° μ½μ§νμ΄λ ν΄κ²°ν΄μ μ μ μ μ μμ κ² κ°λ€.