Я получал эту ошибку, пока не нашел решение на слабом канале Wes Bos.
Следующее сработало для меня, но, возможно, вы могли получить эту ошибку по другой причине.
Я не уверен, почему это работает.
Вы можете видеть, как он работает здесь
cd backend
- Выполнить
npm install graphql-import
- Обновление скриптов в
package.json
:
"deploy": "prisma deploy --env-file variables.env&& npm run writeSchema",
"writeSchema": "node src/writeSchema.js"
Примечание. Для пользователей, не использующих Windows, обязательно ставьте пробел до &&
- Создать
src/writeSchema.js
:
const fs = require('fs');
const { importSchema } = require('graphql-import');
const text = importSchema("src/generated/prisma.graphql");
fs.writeFileSync("src/schema_prep.graphql", text)
- Обновление
src/db.js
:
const db = new Prisma({
typeDefs: __dirname + "/schema_prep.graphql",
...
});
- Обновление
src/createServer.js
:
return new GraphQLServer({
typeDefs: __dirname + '/schema.graphql',
...
});
- Обновление
src/schema.graphql
:
# import * from './schema_prep.graphql'
- Создать
now.json
{
"version": 2,
"name": "Project Name",
"builds": [
{ "src": "src/index.js", "use": "@now/node-server" }
],
"routes": [
{ "src": "/.*", "dest": "src/index.js" }
],
"env": {
"SOME_VARIABLE": "xxx",
...
}
}
- Запустите
npm run deploy
, чтобы изначально создать schema_prep.graphql
.
- Выполнить
now
Другой ответ сказал это:
Вы не должны смешивать импорт graphql и импорт js / ts. Синтаксис в файле graphql будет интерпретирован graphql-import и будет игнорироваться ncc (компилятором, который читает содержимое __dirname и перемещает файл в правильный каталог и т. Д.)
В моем примере schema_prep.graphql уже предварительно обработан с помощью импорта из сгенерированного файла graphql.
Надеюсь, это поможет.