From 9f78a96de2daa947fa2f2987d83c3ec7663bc6a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=A4fer?= Date: Fri, 14 Dec 2018 22:04:02 +0100 Subject: [PATCH] Run babel node instead of nodemon Quote of @appinteractive: ``` Currently we are running nodemon on production which watches for filechanges and consumes much more memory then just node. As nodemon is only for development, I added a build step to compile the application for production and then only run the dist folder with pure node. ``` --- .babelrc | 13 ++++++++++++- .travis.yml | 4 +++- Dockerfile | 1 + README.md | 8 ++++++++ dist/.gitkeep | 0 package.json | 30 ++++++++++++++++-------------- yarn.lock | 2 +- 7 files changed, 41 insertions(+), 17 deletions(-) create mode 100644 dist/.gitkeep diff --git a/.babelrc b/.babelrc index b7191e76e..2d91b3635 100644 --- a/.babelrc +++ b/.babelrc @@ -1 +1,12 @@ -{ "presets": ["@babel/preset-env"] } +{ + "presets": [ + [ + "@babel/preset-env", + { + "targets": { + "node": "10" + } + } + ] + ] +} diff --git a/.travis.yml b/.travis.yml index b510062b9..1e832a04d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -22,7 +22,9 @@ install: - docker-compose -f docker-compose.yml up -d script: - - docker-compose exec backend yarn run ci + - docker-compose exec backend yarn run lint + - docker-compose exec backend yarn run test + - docker-compose exec backend yarn run test:coverage - docker-compose exec backend yarn run db:reset - docker-compose exec backend yarn run db:seed diff --git a/Dockerfile b/Dockerfile index 269b74ea5..ad0ce1094 100644 --- a/Dockerfile +++ b/Dockerfile @@ -16,4 +16,5 @@ RUN yarn install --production=false --frozen-lockfile --non-interactive COPY . . COPY .env.template .env +RUN yarn run build CMD ["yarn", "run", "start"] diff --git a/README.md b/README.md index 252f2405b..1eb8cc528 100644 --- a/README.md +++ b/README.md @@ -63,6 +63,14 @@ Configure the file `.env` according to your needs and your local setup. Start the GraphQL service: +```bash +yarn dev +# -or- +npm dev +``` + +And on the production machine run following: + ```bash yarn start # -or- diff --git a/dist/.gitkeep b/dist/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/package.json b/package.json index 422f3e975..f94b720ae 100644 --- a/package.json +++ b/package.json @@ -7,25 +7,22 @@ "no_auth": "cross-env GRAPHQL_URI=http://localhost:4001 GRAPHQL_PORT=4001 PERMISSIONS=disabled" }, "scripts": { - "ci": "yarn run lint && yarn run test && yarn run test:coverage", + "build": "babel src/ -d dist/ --copy-files", + "start": "node dist/", + "dev": "nodemon --exec babel-node src/index.js", + "dev:debug": "nodemon --exec babel-node --inspect=0.0.0.0:9229 src/index.js", + "mocha": "mocha --require @babel/register src/**/*.test.js", "lint": "eslint src --config .eslintrc.js", - "test": "./node_modules/.bin/nyc --reporter=text-lcov ./node_modules/.bin/mocha --require @babel/register src/**/*.test.js", - "test:coverage": "./node_modules/.bin/nyc report --reporter=text-lcov > coverage.lcov", - "start": "./node_modules/.bin/nodemon --exec babel-node src/index.js", - "start:debug": "./node_modules/.bin/nodemon --exec babel-node --inspect=0.0.0.0:9229 src/index.js", - "db:script:seed": "wait-on tcp:4001 && ./node_modules/.bin/babel-node src/seed/seed-db.js", - "db:script:reset": "wait-on tcp:4001 && ./node_modules/.bin/babel-node src/seed/reset-db.js", + "test": "nyc --reporter=text-lcov mocha --require @babel/register src/**/*.test.js", + "test:coverage": "nyc report --reporter=text-lcov > coverage.lcov", + "db:script:seed": "wait-on tcp:4001 && babel-node src/seed/seed-db.js", + "db:script:reset": "wait-on tcp:4001 && babel-node src/seed/reset-db.js", "db:seed": "$npm_package_config_no_auth run-p --race start db:script:seed", "db:reset": "$npm_package_config_no_auth run-p --race start db:script:reset" }, "author": "Human Connection gGmbH", "license": "MIT", "dependencies": { - "@babel/cli": "~7.2.0", - "@babel/core": "~7.2.0", - "@babel/node": "~7.2.0", - "@babel/preset-env": "~7.2.0", - "@babel/register": "~7.0.0", "apollo-cache-inmemory": "~1.3.11", "apollo-client": "~2.4.7", "apollo-link-http": "~1.5.7", @@ -52,10 +49,16 @@ "passport": "~0.4.0", "passport-jwt": "~4.0.0", "sanitize-html": "~1.19.3", + "faker": "~4.1.0", "slug": "~0.9.3", "trunc-html": "~1.1.2" }, "devDependencies": { + "@babel/cli": "~7.2.0", + "@babel/core": "~7.2.0", + "@babel/node": "~7.2.0", + "@babel/preset-env": "~7.2.0", + "@babel/register": "~7.0.0", "apollo-server-testing": "~2.2.6", "babel-eslint": "~10.0.1", "chai": "~4.2.0", @@ -65,8 +68,7 @@ "eslint-plugin-node": "~8.0.0", "eslint-plugin-promise": "~4.0.1", "eslint-plugin-standard": "~4.0.0", - "faker": "~4.1.0", - "mocha": "^5.2.0", + "mocha": "~5.2.0", "nodemon": "~1.18.8", "npm-run-all": "~4.1.5", "nyc": "^13.1.0", diff --git a/yarn.lock b/yarn.lock index d67876365..bef258242 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4163,7 +4163,7 @@ mkdirp@0.5.1, mkdirp@^0.5.0, mkdirp@^0.5.1: dependencies: minimist "0.0.8" -mocha@^5.2.0: +mocha@~5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/mocha/-/mocha-5.2.0.tgz#6d8ae508f59167f940f2b5b3c4a612ae50c90ae6" integrity sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==