diff --git a/client/.gitignore b/client/.gitignore index 8bf2bcb39c..98c279d4c5 100644 --- a/client/.gitignore +++ b/client/.gitignore @@ -3,6 +3,8 @@ node_modules yarn-error.log +config/env.json + # Build directory /public .DS_Store diff --git a/config/ensure-env.js b/config/ensure-env.js index 4dcd58b955..c1553df6e7 100644 --- a/config/ensure-env.js +++ b/config/ensure-env.js @@ -1,25 +1,30 @@ -var fs = require('fs'); +require('dotenv').config(); -fs.access( - './server/rev-manifest.json', - function(err) { - if (err) { - console.log('\n\ncreating manifest\n\n'); - return fs.writeFileSync('server/rev-manifest.json', '{}'); - } - console.log('\n\nrev-manifest present\n\n'); - return null; - } -); +const fs = require('fs-extra'); -fs.access( - './server/resources/pathMigration.json', - err => { - if (err) { - console.log('\n\ncreating pathMigration\n\n'); - return fs.writeFileSync('server/resources/pathMigration.json', '{}'); - } - console.log('\n\npathMigration present\n\n'); - return null; +const env = require('./env'); + +fs.access('./api-server/server/rev-manifest.json', function(err) { + if (err) { + console.log('\n\ncreating manifest\n\n'); + return fs.writeFileSync('./api-server/server/rev-manifest.json', '{}'); } + console.log('\n\nrev-manifest present\n\n'); + return null; +}); + +fs.access('./api-server/server/resources/pathMigration.json', err => { + if (err) { + console.log('\n\ncreating pathMigration\n\n'); + return fs.writeFileSync( + './api-server/server/resources/pathMigration.json', + '{}' + ); + } + console.log('\n\npathMigration present\n\n'); + return null; +}); + +fs.ensureDir('./client/config/').then(() => + fs.writeFileSync('./client/config/env.json', JSON.stringify(env)) ); diff --git a/package-lock.json b/package-lock.json index fd74f4b2f1..02275ea1ee 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,11 +4,44 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "dotenv": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.0.0.tgz", + "integrity": "sha512-FlWbnhgjtwD+uNLUGHbMykMOYQaTivdHEmYwAKFjn6GKe/CqY0fNae93ZHTd20snh9ZLr8mTzIL9m0APQ1pjQg==" + }, + "fs-extra": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz", + "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==", + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "4.0.0", + "universalify": "0.1.2" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "4.1.11" + } + }, "tree-kill": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.0.tgz", "integrity": "sha512-DlX6dR0lOIRDFxI0mjL9IYg6OTncLm/Zt+JiBhE5OlFcAR8yc9S7FFXU9so0oda47frdM/JFsk7UjNt9vscKcg==", "dev": true + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" } } } diff --git a/package.json b/package.json index 5908b822f2..4c4891c414 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,14 @@ { "name": "@freecodecamp/freecodecamp", "version": "0.0.1", + "scripts": { + "develop": "node ./config/ensure-env.js && node develop-client-server.js" + }, "devDependencies": { "tree-kill": "^1.2.0" + }, + "dependencies": { + "dotenv": "^6.0.0", + "fs-extra": "^7.0.0" } }