Modrinth/nuxt.config.js
Redblueflame 03b2d02742
Change ads provider, and add consent system for advertising (#155)
* Add GAM integration & base for GPDR consent

* Moved consent to a specific page.

* Added functionality to the privacy page, and desactivate tracking if consent is not given.

* Added GeoEdge support, and fixed auth issues

* Fix actions issue

* Fix actions issue, attempt 2

* Added a module for analytics with consent support.

* Remove unnecessary function

* Add support for runtime config
2021-04-08 19:44:25 -07:00

187 lines
4.4 KiB
JavaScript

export default {
/*
** Nuxt target
** See https://nuxtjs.org/api/configuration-target
*/
target: 'server',
/*
** Headers of the page
** See https://nuxtjs.org/api/configuration-head
*/
head: {
htmlAttrs: {
lang: 'en',
},
title: 'Modrinth',
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{
hid: 'description',
name: 'description',
content:
'Modrinth is a mod distribution platform. Modrinth is modern, easy to use, and built for modders. Modrinth currently supports Minecraft, including Forge and Fabric mod loaders.',
},
{ hid: 'publisher', name: 'publisher', content: 'Guavy LLC' },
{
hid: 'apple-mobile-web-app-title',
name: 'apple-mobile-web-app-title',
content: 'Modrinth',
},
{ hid: 'theme-color', name: 'theme-color', content: '#4d9227' },
{ hid: 'color-scheme', name: 'color-scheme', content: 'light dark' },
{ hid: 'og:site_name', name: 'og:site_name', content: 'Modrinth' },
{
hid: 'og:description',
name: 'og:description',
content: 'An open source modding platform',
},
{
hid: 'og:title',
name: 'og:title',
content: 'Modrinth',
},
{ hid: 'og:type', name: 'og:type', content: 'website' },
{ hid: 'og:url', name: 'og:url', content: 'https://www.modrinth.com' },
{
hid: 'og:image',
name: 'og:image',
content: 'https://cdn.modrinth.com/modrinth.png',
},
{ hid: 'twitter:card', name: 'twitter:card', content: 'summary' },
{ hid: 'twitter:site', name: 'twitter:site', content: '@modrinth' },
],
link: [
{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' },
{
rel: 'stylesheet',
href:
'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700;800&display=swap',
},
],
script: [],
},
vue: {
config: {
productionTip: false,
devtools: true,
},
},
router: {
middleware: ['auth', 'ads_tracking'],
},
/*
** Global CSS
*/
css: ['~assets/styles/global.scss'],
/*
** Plugins to load before mounting the App
** https://nuxtjs.org/guide/plugins
*/
plugins: [
'~/plugins/vue-tooltip.js',
'~/plugins/vue-notification.js',
'~/plugins/compiled-markdown-directive.js',
'~/plugins/vue-syntax.js',
'~/plugins/auth.js',
],
/*
** Auto import components
** See https://nuxtjs.org/api/configuration-components
*/
components: true,
/*
** Nuxt.js dev-modules
*/
buildModules: [
// Doc: https://github.com/nuxt-community/eslint-module
'@nuxtjs/eslint-module',
'@nuxtjs/svg',
'@nuxtjs/color-mode',
],
/*
** Nuxt.js modules
*/
modules: [
// Doc: https://axios.nuxtjs.org/usage
'@nuxtjs/dayjs',
'@nuxtjs/axios',
'@nuxtjs/robots',
'@nuxtjs/sitemap',
'@nuxtjs/style-resources',
'cookie-universal-nuxt',
'~/modules/gpt-ads',
'~/modules/analytics',
],
ads: {
// Module options
ghostMode: true,
geoEdgeId: '',
},
analytics: {
enabled: false,
script_url: '',
tracking_code: '',
},
robots: {
Sitemap: 'https://modrinth.com/sitemap.xml',
},
sitemap: {
exclude: ['/dashboard/**', '/dashboard', '/mod/create'],
},
/*
** Axios module configuration
** See https://axios.nuxtjs.org/options
*/
axios: {
headers: {
common: {
Accept: 'application/json',
},
},
},
dayjs: {
locales: ['en'],
defaultLocale: 'en',
plugins: ['relativeTime'],
},
/*
** Build configuration
** See https://nuxtjs.org/api/configuration-build/
*/
build: {
transpile: ['vue-tooltip', 'vue-notification'],
styleResources: {
scss: './assets/styles/injected.scss',
},
html: {
minify: {
collapseWhitespace: true, // as @dario30186 mentioned
removeComments: true, // 👈 add this line
},
},
},
loading: {
color: 'green',
height: '2px',
},
env: {
version: process.env.VERSION_ID || 'unknown',
},
publicRuntimeConfig: {
ads: {
ghostMode: process.env.ENABLE_ADS == null,
GeoEdgeId: process.env.GEOEDGE_ID,
networkCode: process.env.GAM_ID,
},
analytics: {
enabled: process.env.ENABLE_ANALYTICS,
script_url: process.env.ANALYTICS_URL,
tracking_code: process.env.ANALYTICS_ID,
},
},
}