-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathnuxt.config.js
More file actions
128 lines (124 loc) · 4.1 KB
/
nuxt.config.js
File metadata and controls
128 lines (124 loc) · 4.1 KB
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
// 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';
import webpack from 'webpack';
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.master')));
const processEnv = {};
// copy process.env values by .env.master keys
Object.keys(dotEnvExample).forEach((key) => {
processEnv[key] = process.env[key];
});
import {BASE_TITLE, BASE_DESCRIPTION} from "./assets/variables";
module.exports = {
ssr: false,
telemetry: false,
/*
** 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',
'validator-meta',
'explorer',
],
},
plugins: [
{ src: '~/plugins/click-blur.js', ssr: false },
{ src: '~/plugins/seo-gtm.js', ssr: false },
{ src: '~/plugins/history.js', ssr: false },
],
env: Object.assign({}, processEnv, dotEnv),
modern: process.env.NODE_ENV === 'development' ? false : 'client',
/*
** Build configuration
*/
build: {
extractCSS: true,
optimizeCSS: false,
// postcss: false,
// optimization: {
// splitChunks: {
// name: true
// }
// },
watch: [
'./api/',
// `./lang/`, // this watcher dont-work yet
],
/*
** Run ESLint on save
*/
extend(config, { isDev, isClient, isServer }) {
/*
** Run ESLint on save
*/
// if (isDev && isClient) {
// config.module.rules.push({
// enforce: 'pre',
// test: /\.(js|vue)$/,
// loader: 'eslint-loader',
// exclude: /(node_modules)/,
// });
// }
config.resolve = config.resolve || {};
config.resolve.mainFields = ['module', 'browser', 'main'];
config.resolve.alias = config.resolve.alias || {};
config.resolve.alias['lodash'] = path.resolve(__dirname, "node_modules/lodash-es");
},
plugins: [
new webpack.ContextReplacementPlugin(/moment[/]locale$/, /^\.\/(en|ru)$/),
],
// 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',
'centrifuge/src',
'v-tooltip/src',
// 'autonumeric/src',
// 'vue-autonumeric/src',
// 'nuxt-i18n/src',
'clipbrd/src',
'pretty-num/src',
'from-exponential/src',
'minterjs-util/src',
'minterjs-tx/src',
'minterjs-wallet/src',
'minter-js-sdk/src',
],
},
};