aboutsummaryrefslogtreecommitdiff
path: root/nuxt.config.js
diff options
context:
space:
mode:
Diffstat (limited to 'nuxt.config.js')
-rw-r--r--nuxt.config.js154
1 files changed, 82 insertions, 72 deletions
diff --git a/nuxt.config.js b/nuxt.config.js
index 3600f08..d99f2d9 100644
--- a/nuxt.config.js
+++ b/nuxt.config.js
@@ -3,80 +3,90 @@ import autoprefixer from 'autoprefixer';
const Util = require('./src/api/utils/Util');
-export default {
- ssr: true,
- srcDir: 'src/site/',
- head: {
- title: Util.config.serviceName,
- titleTemplate: `%s | ${Util.config.serviceName}`,
- // TODO: Add the directory with pictures for favicon and stuff
- meta: [
- { charset: 'utf-8' },
- { name: 'viewport', content: 'width=device-width, initial-scale=1' },
- { hid: 'theme-color', name: 'theme-color', content: `${Util.config.metaThemeColor}` },
- { hid: 'description', name: 'description', content: `${Util.config.metaDescription}` },
- { hid: 'keywords', name: 'keywords', content: `${Util.config.metaKeywords}` },
- {
- hid: 'apple-mobile-web-app-title',
- name: 'apple-mobile-web-app-title',
- content: `${Util.config.serviceName}`
- },
- { hid: 'application-name', name: 'application-name', content: `${Util.config.serviceName}` },
- { hid: 'twitter:card', name: 'twitter:card', content: 'summary' },
- { hid: 'twitter:site', name: 'twitter:site', content: `${Util.config.metaTwitterHandle}` },
- { hid: 'twitter:creator', name: 'twitter:creator', content: `${Util.config.metaTwitterHandle}` },
- { hid: 'twitter:title', name: 'twitter:title', content: `${Util.config.serviceName}` },
- { hid: 'twitter:description', name: 'twitter:description', content: `${Util.config.metaDescription}` },
- { hid: 'twitter:image', name: 'twitter:image', content: `/logo.png` },
- { hid: 'og:url', property: 'og:url', content: `/` },
- { hid: 'og:type', property: 'og:type', content: 'website' },
- { hid: 'og:title', property: 'og:title', content: `${Util.config.serviceName}` },
- { hid: 'og:description', property: 'og:description', content: `${Util.config.metaDescription}` },
- { hid: 'og:image', property: 'og:image', content: `/logo.png` },
- { hid: 'og:image:secure_url', property: 'og:image:secure_url', content: `/logo.png` },
- { hid: 'og:site_name', property: 'og:site_name', content: `${Util.config.serviceName}` }
- ],
- link: [
- { rel: 'stylesheet', href: 'https://fonts.googleapis.com/css?family=Nunito:300,400,600,700' },
+export default async () => {
+ /*
+ FIXME:
+ Since Util.config is not populated during production env because it needs to grab the values from the db
+ we need to use this hack to populate it before we can access the properties without await like we do in the export below.
+ This will be solved once the TypeScript rewrite is complete as we can can simply pass a config object to express
+ and build from there, but for now the build needs to be triggered before the API is started.
+ */
+ await Util.config;
+ return {
+ ssr: true,
+ srcDir: 'src/site/',
+ head: {
+ title: Util.config.serviceName,
+ titleTemplate: `%s | ${Util.config.serviceName}`,
+ // TODO: Add the directory with pictures for favicon and stuff
+ meta: [
+ { charset: 'utf-8' },
+ { name: 'viewport', content: 'width=device-width, initial-scale=1' },
+ { hid: 'theme-color', name: 'theme-color', content: `${Util.config.metaThemeColor}` },
+ { hid: 'description', name: 'description', content: `${Util.config.metaDescription}` },
+ { hid: 'keywords', name: 'keywords', content: `${Util.config.metaKeywords}` },
+ {
+ hid: 'apple-mobile-web-app-title',
+ name: 'apple-mobile-web-app-title',
+ content: `${Util.config.serviceName}`
+ },
+ { hid: 'application-name', name: 'application-name', content: `${Util.config.serviceName}` },
+ { hid: 'twitter:card', name: 'twitter:card', content: 'summary' },
+ { hid: 'twitter:site', name: 'twitter:site', content: `${Util.config.metaTwitterHandle}` },
+ { hid: 'twitter:creator', name: 'twitter:creator', content: `${Util.config.metaTwitterHandle}` },
+ { hid: 'twitter:title', name: 'twitter:title', content: `${Util.config.serviceName}` },
+ { hid: 'twitter:description', name: 'twitter:description', content: `${Util.config.metaDescription}` },
+ { hid: 'twitter:image', name: 'twitter:image', content: `/logo.png` },
+ { hid: 'og:url', property: 'og:url', content: `/` },
+ { hid: 'og:type', property: 'og:type', content: 'website' },
+ { hid: 'og:title', property: 'og:title', content: `${Util.config.serviceName}` },
+ { hid: 'og:description', property: 'og:description', content: `${Util.config.metaDescription}` },
+ { hid: 'og:image', property: 'og:image', content: `/logo.png` },
+ { hid: 'og:image:secure_url', property: 'og:image:secure_url', content: `/logo.png` },
+ { hid: 'og:site_name', property: 'og:site_name', content: `${Util.config.serviceName}` }
+ ],
+ link: [
+ { rel: 'stylesheet', href: 'https://fonts.googleapis.com/css?family=Nunito:300,400,600,700' },
- // This one is a pain in the ass to make it customizable, so you should edit it manually
- { type: 'application/json+oembed', href: `/oembed.json` }
- ]
- },
- plugins: [
- '~/plugins/axios',
- '~/plugins/buefy',
- '~/plugins/v-clipboard',
- '~/plugins/vue-isyourpasswordsafe',
- '~/plugins/vue-timeago',
- '~/plugins/vuebar',
- '~/plugins/notifier',
- '~/plugins/handler'
- ],
- css: [],
- modules: ['@nuxtjs/axios', 'cookie-universal-nuxt'],
- router: {
- linkActiveClass: 'is-active',
- linkExactActiveClass: 'is-active'
- },
- env: {
- development: process.env.NODE_ENV !== 'production'
- },
- axios: {
- baseURL: `${process.env.NODE_ENV === 'production' ? process.env.DOMAIN : 'http://localhost:5000'}/api`
- },
- build: {
- extractCSS: process.env.NODE_ENV === 'production',
- postcss: {
- preset: {
- autoprefixer
- }
+ // This one is a pain in the ass to make it customizable, so you should edit it manually
+ { type: 'application/json+oembed', href: `/oembed.json` }
+ ]
+ },
+ plugins: [
+ '~/plugins/axios',
+ '~/plugins/buefy',
+ '~/plugins/v-clipboard',
+ '~/plugins/vue-isyourpasswordsafe',
+ '~/plugins/vue-timeago',
+ '~/plugins/vuebar',
+ '~/plugins/notifier',
+ '~/plugins/handler'
+ ],
+ css: [],
+ modules: ['@nuxtjs/axios', 'cookie-universal-nuxt'],
+ router: {
+ linkActiveClass: 'is-active',
+ linkExactActiveClass: 'is-active'
+ },
+ env: {
+ development: process.env.NODE_ENV !== 'production'
},
- extend(config, { isDev }) {
- // Extend only webpack config for client-bundle
- if (isDev) {
- config.devtool = 'source-map';
+ axios: {
+ baseURL: `${process.env.NODE_ENV === 'production' ? process.env.DOMAIN : 'http://localhost:5000'}/api`
+ },
+ build: {
+ extractCSS: process.env.NODE_ENV === 'production',
+ postcss: {
+ preset: {
+ autoprefixer
+ }
+ },
+ extend(config, { isDev }) {
+ // Extend only webpack config for client-bundle
+ if (isDev) {
+ config.devtool = 'source-map';
+ }
}
}
- }
+ };
};