-
Notifications
You must be signed in to change notification settings - Fork 6
/
next.config.js
63 lines (55 loc) · 1.96 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
51
52
53
54
55
56
57
58
59
60
61
62
63
const { withSentryConfig } = require('@sentry/nextjs');
const intercept = require('intercept-stdout');
const rewrites =
process.env.NODE_ENV === 'development'
? async () => {
return {
fallback: [
{
source: '/api/:path*',
destination: `${process.env.NEXT_PUBLIC_API_BASE_URL}/api/:path*`,
},
{
source: '/guest/api/:path*',
destination: `${process.env.NEXT_PUBLIC_API_BASE_URL}/guest/api/:path*`,
},
],
};
}
: undefined;
/** @type {import('next').NextConfig} */
const nextConfig = {
rewrites,
reactStrictMode: true,
webpack(config) {
/**
* @note https://stackoverflow.com/questions/55175445/cant-import-svg-into-next-js/70961634#comment125790685_70961634
* url-loader가 없는 경우
* export { ReactComponent as Icon } from './icon.svg -> 사용불가
* export { default as Icon } from './icon.svg -> 사용가능 (이렇게 사용한 경우 스토리북에서 오류)
*/
config.module.rules.push({ test: /\.svg$/, use: ['@svgr/webpack', 'url-loader'] });
config.module.rules.push({ test: /\.md$/, use: 'raw-loader' });
return config;
},
};
const sentryWebpackPluginOptions = {
// Additional config options for the Sentry Webpack plugin. Keep in mind that
// the following options are set automatically, and overriding them is not
// recommended:
// release, url, org, project, authToken, configFile, stripPrefix,
// urlPrefix, include, ignore
silent: true, // Suppresses all logs
// For all available options, see:
// https://github.com/getsentry/sentry-webpack-plugin#options.
};
// safely ignore recoil stdout warning messages
function interceptStdout(text) {
if (text.includes('Duplicate atom key')) {
return '';
}
return text;
}
// Intercept in dev and prod
intercept(interceptStdout);
module.exports = withSentryConfig(nextConfig, sentryWebpackPluginOptions);