-
Notifications
You must be signed in to change notification settings - Fork 2
/
nuxt.config.js
113 lines (110 loc) · 3.6 KB
/
nuxt.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
// register env before other imports @see https://www.npmjs.com/package/dotenv#how-do-i-use-dotenv-with-import-
import 'dotenv/config';
import dotenv from 'dotenv';
const path = require('path');
const fs = require('fs');
const dotEnvConfig = dotenv.config();
const dotEnv = dotEnvConfig.error ? {} : dotEnvConfig.parsed;
const dotEnvExample = dotenv.parse(fs.readFileSync(path.resolve(process.cwd(), '.env.example')));
const processEnv = {};
// copy process.env values by .env.example keys
Object.keys(dotEnvExample).forEach((key) => {
processEnv[key] = process.env[key];
});
import {BASE_TITLE, BASE_DESCRIPTION} from "./assets/variables";
module.exports = {
/*
** Headers of the page
*/
head: {
title: BASE_TITLE,
meta: [
{ charset: 'utf-8' },
{ name: 'viewport', content: 'width=device-width, initial-scale=1' },
{ hid: 'description', name: 'description', content: BASE_DESCRIPTION },
{ hid: 'og-title', name: 'og:title', content: BASE_TITLE },
{ hid: 'og-description', name: 'og:description', content: BASE_DESCRIPTION },
{ hid: 'og-image', name: 'og:image', content: '/social-share.png' },
],
link: [
{ rel: 'icon', href: '/favicon.png' },
{ rel: 'apple-touch-icon', href: '/apple-touch-icon.png' },
],
},
css: [
'./static/css/style.min.css',
],
/*
** Customize the progress bar color
*/
loading: { color: '#cf5c2c' },
router: {
linkActiveClass: '',
linkExactActiveClass: 'is-active',
middleware: [
'hash-lowercase',
],
},
plugins: [
{ src: '~/plugins/click-blur.js', ssr: false },
{ src: '~/plugins/seo-gtag.js', ssr: false },
// { src: '~/plugins/seo-ym.js', ssr: false },
// { src: '~/plugins/seo-fb.js', ssr: false },
// { src: '~/plugins/seo-vk.js', ssr: false },
// { src: '~/plugins/seo-tw.js', ssr: false },
{ src: '~/plugins/history.js', ssr: false },
],
env: Object.assign({}, processEnv, dotEnv),
/*
** Build configuration
*/
build: {
extractCSS: true,
// optimization: {
// splitChunks: {
// name: true
// }
// },
watch: [
'./api/',
// `./lang/`, // this watcher dont-work yet
],
/*
** Run ESLint on save
*/
extend(config, { isDev, isClient, isServer }) {
// if (isDev && isClient) {
// config.module.rules.push({
// enforce: 'pre',
// test: /\.(js|vue)$/,
// loader: 'eslint-loader',
// exclude: /(node_modules)/,
// });
// }
/*
** process some node_modules through webpack in server build
*/
},
babel: {
presets: ['@nuxt/babel-preset-app'],
// prevent @babel/plugin-transform-runtime from inserting `import` statement into commonjs files (bc. it breaks webpack)
sourceType: 'unambiguous',
},
transpile: [
/es6-promise|\.(?!(?:js|json)$).{1,5}$/i,
'/base-x/',
'@material/',
'date-fns/esm',
'lodash-es',
// 'nuxt-i18n/src',
'clipbrd/src',
'pretty-num/src',
'from-exponential/src',
'noahjs-util/src',
'noahjs-tx/src',
'noahjs-wallet/src',
'noah-js-sdk/src',
'noah-js-org/src',
],
},
};