Babel не компилирует файлы .graphql в папке сборки на «babel server --out-dir build» - PullRequest
0 голосов
/ 28 января 2020

Некоторое введение:

Наше приложение использует Heroku в качестве сервера. Итак, после нажатия кода он запускается npm start, как в моем пакете. json

Моя текущая версия nodeJS в ноутбуке: v8.16.2, npm: 6.4.1.

В пакете. json:

"engines": { "node": "10.16.3", "npm": "6.9.0" },

Проблема :

В настоящее время она работает следующим образом "start": "node build/index.js". Последние изменения касались добавления файлов graphql.

npm start show Error: ENOENT: no such file or directory, open '/app/build/apollo/nCourse/nCourse.graphql'

Мы не работаем с node server/index.js из-за использования новых функций сценария ecma (не распространено js) ) как импорт и экспорт

Вопрос

Я вижу два решения этой проблемы

  1. Сделать что-то, что создаст файл с расширением graphql в папке сборки

  2. Возможно, обновите версию nodeJS, если она сможет понять импорт и экспорт

Пакет. json

{
  "name": "wunder-education",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "engines": {
    "node": "10.16.3",
    "npm": "6.9.0"
  },
  "scripts": {
    "start": "node build/index.js",
    "server": "nodemon --exec babel-node server/index.js",
    "server:prodDB": "MONGO_URL=mongodb://saturdaykids:52turdayk1ds3@ds117866.mlab.com:17866/saturdaykids-prod nodemon --exec babel-node server/index.js",
    "clean": "rm -rf node_modules",
    "clean:admin": "npm run clean --prefix admin",
    "clean:all": "concurrently \"npm run clean\" \"npm run clean:admin\"",
    "install:admin": "npm install --prefix admin",
    "admin": "npm run start --prefix admin",
    "build:admin": "npm run build --prefix admin",
    "build:server": "babel server --out-dir build",
    "build": "concurrently \"npm run build:server\" \"npm run build:admin\"",
    "dev": "concurrently \"npm run server\" \"npm run admin\"",
    "postinstall": "npm run install:admin",
    "heroku-postbuild": "npm run build",
    "format:server": "prettier --write server/**/**/**/*.js",
    "format:admin": "prettier --write admin/src/**/**/*.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@apollo/react-hooks": "^3.1.3",
    "@babel/cli": "^7.0.0",
    "@babel/core": "^7.0.0",
    "@babel/node": "^7.2.2",
    "@babel/plugin-transform-runtime": "^7.7.4",
    "@babel/preset-env": "^7.0.0",
    "@babel/runtime": "^7.3.1",
    "@badgeup/badgeup-node-client": "^2.0.3",
    "airtable": "^0.5.10",
    "apollo-boost": "^0.4.4",
    "apollo-server-express": "^2.9.13",
    "aws-sdk": "^2.456.0",
    "babel-plugin-module-resolver": "^3.1.1",
    "body-parser": "^1.18.3",
    "chalk": "^2.4.1",
    "concurrently": "^3.5.1",
    "connect-mongo": "^2.0.1",
    "cors": "^2.8.5",
    "express": "^4.16.3",
    "express-force-https": "^1.0.0",
    "express-jwt": "^5.3.1",
    "express-session": "^1.15.6",
    "express-validator": "^5.3.1",
    "graphql": "^14.5.8",
    "jsonwebtoken": "^8.4.0",
    "lodash": "^4.17.15",
    "mongoose": "^5.1.2",
    "mongoose-fill": "^1.7.0",
    "mongoose-paginate": "^5.0.3",
    "multer": "^1.4.1",
    "multer-s3": "^2.9.0",
    "nan": "^2.14.0",
    "nodemon": "^1.17.5",
    "passport": "^0.4.0",
    "passport-jwt": "^4.0.0",
    "passport-local": "^1.0.0",
    "passport-local-mongoose": "^5.0.1",
    "request": "^2.87.0",
    "socket.io": "^2.1.1",
    "socket.io-client": "^2.2.0",
    "supertest": "^3.4.2"
  },
  "devDependencies": {
    "babel-eslint": "^10.0.3",
    "eslint": "^6.4.0",
    "eslint-config-airbnb": "^16.1.0",
    "eslint-config-prettier": "^6.7.0",
    "eslint-import-resolver-babel-module": "^5.1.0",
    "eslint-plugin-import": "^2.14.0",
    "eslint-plugin-jsx-a11y": "^6.2.3",
    "eslint-plugin-prettier": "^3.1.1",
    "eslint-plugin-react": "^7.17.0",
    "prettier": "^1.16.4"
  }
}

1 Ответ

0 голосов
/ 28 января 2020

Наконец, это решается копированием и вставкой файлов .graphql в build / apollo с помощью этой команды

rsync -a --prune-empty-dirs --include 'server/apollo/*' --include '*.graphql' 'server/apollo' 'build'

В пакете. json:

"syncGraphql": "rsync -a --prune-empty-dirs --include 'server/apollo/*' --include '*.graphql' 'server/apollo' 'build'",

"build": "concurrently \"npm run build:server\" \"npm run build:admin\" \"npm run syncGraphql\"",
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...