Add configuration and build changes

pull/1657/head
Kamran Ahmed 5 years ago
parent 0cdefbf7d0
commit 335fb92925
  1. 1
      .env.dist
  2. 2
      .gitignore
  3. 3
      config/template.json
  4. 45
      next.config.js
  5. 3
      package.json
  6. 2
      scripts/build.sh
  7. 11
      scripts/path-map.js

@ -1 +0,0 @@
GA_SECRET=

2
.gitignore vendored

@ -10,3 +10,5 @@ node_modules
yarn-error.log
*.sublime-project
*.sublime-workspace
config/*.json
!config/template.json

@ -0,0 +1,3 @@
{
"GA_SECRET": ""
}

@ -1,15 +1,8 @@
const path = require('path');
const fs = require('fs');
const withSass = require('@zeit/next-sass');
const withCSS = require('@zeit/next-css');
const rehypePrism = require('@mapbox/rehype-prism');
const {
getPageRoutes,
getGuideRoutes,
getRoadmapRoutes,
} = require("./scripts/path-map");
require('dotenv').config();
const withMDX = require('@next/mdx')({
extension: /\.(md|mdx)?$/,
options: {
@ -17,23 +10,30 @@ const withMDX = require('@next/mdx')({
},
});
const options = {
exportPathMap: () => {
return {
...getPageRoutes(),
...getGuideRoutes(),
...getRoadmapRoutes(),
};
},
const { getPathMap } = require("./scripts/path-map");
// @todo read these from `process.env` and inject without having to write the vars here
env: {
GA_SECRET: process.env.GA_SECRET
},
/**
* Loads the configuration for the given environment
* @param env
* @returns {*}
*/
const loadConfig = (env = 'dev') => {
const configPath = `./config/${env}.json`;
if (!fs.existsSync(configPath)) {
console.log(`Config file not found: ${configPath}`);
process.exit(1);
}
// Allow mdx and md files to be pages
pageExtensions: ['jsx', 'js', 'mdx', 'md'],
console.log(`Config file found: ${configPath}`);
// @todo stringify the values for webpack - it doesn't understand objects
return require(configPath);
};
const options = {
exportPathMap: getPathMap(),
env: loadConfig(process.env.NODE_ENV),
pageExtensions: ['jsx', 'js', 'mdx', 'md'],
webpack(config, options) {
// // Transforms SVGs to components
config.module.rules.push({
@ -58,7 +58,6 @@ const options = {
},
};
//
let nextConfig = withSass(options);
nextConfig = withCSS(nextConfig);
nextConfig = withMDX(nextConfig);

@ -4,7 +4,7 @@
"main": "index.js",
"license": "BSD-4-Clause",
"scripts": {
"dev": "next",
"dev": "NODE_ENV=dev next",
"html": "./scripts/build.sh",
"serve:out": "serve out",
"sitemap": "node scripts/sitemap.js",
@ -28,7 +28,6 @@
"bootstrap": "^4.3.1",
"classnames": "^2.2.6",
"date-fns": "^2.6.0",
"dotenv": "^8.2.0",
"font-awesome": "^4.7.0",
"next": "^9.0.4",
"node-sass": "^4.12.0",

@ -8,7 +8,7 @@ if [ ! -f "$ENV_FILE" ]; then
exit 1
fi
next build
NODE_ENV=prod next build
next export
echo 'roadmap.sh' > out/CNAME
touch out/.nojekyll

@ -80,8 +80,19 @@ const getRoadmapRoutes = () => {
}, {});
};
/**
* Generates the path-map understood by next.js
* @returns {{}}
*/
const getPathMap = () => () => ({
...getPageRoutes(),
...getGuideRoutes(),
...getRoadmapRoutes(),
});
module.exports = {
getPageRoutes,
getGuideRoutes,
getRoadmapRoutes,
getPathMap,
};

Loading…
Cancel
Save