-
Notifications
You must be signed in to change notification settings - Fork 16
/
next.config.js
50 lines (44 loc) · 1.34 KB
/
next.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
/* global __dirname */
const withCSS = require('@zeit/next-css');
const webpack = require('webpack');
const path = require('path');
const withCustomBabelConfigFile = require('next-plugin-custom-babel-config');
const assetPrefix = process.env.NODE_ENV === 'production' ? '/formatic' : '';
module.exports = withCustomBabelConfigFile(
withCSS({
webpack(config) {
config.externals = config.externals || {};
config.externals.fs = 'fs';
config.module = config.module || {};
config.module.rules = config.module.rules || [];
config.module.rules.push({
test: /\.svg$/,
use: [
{
loader: 'react-svg-loader',
options: {
svgo: {
plugins: [
{ removeXMLNS: true },
{ removeDimensions: true },
{ removeTitle: true },
],
},
},
},
],
});
config.plugins.push(
new webpack.DefinePlugin({
'process.env.ASSET_PREFIX': JSON.stringify(assetPrefix),
})
);
config.resolve = config.resolve || {};
config.resolve.alias = config.resolve.alias || {};
config.resolve.alias['@'] = __dirname;
return config;
},
assetPrefix,
babelConfigFile: path.resolve('./babel.config.next.js'),
})
);