forked from yuiseki/mapprint-next
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathnext.config.mjs
63 lines (56 loc) · 1.69 KB
/
next.config.mjs
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
import utwm from 'unplugin-tailwindcss-mangle/webpack';
let generatedStrings = new Map();
/** @type {import('next').NextConfig} */
const nextConfig = {
// ウェブパックの設定
webpack: (config, { dev }) => {
config.infrastructureLogging = {
// Must be checked before deploying
level: 'error',
};
// 開発環境の場合は実行されない
if (!dev) {
config.plugins.push(
// Tailwind CSS のクラス名を短縮する
utwm({
classGenerator: {
classPrefix: '', // クラス名の先頭に付ける文字列
// 関数
customGenerate: (original, opts, _context) => {
if (generatedStrings.has(original)) {
return generatedStrings.get(original);
}
let result;
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
do {
result = '';
for (let i = 0; i < 6; i++) {
result +=
opts.classPrefix + characters.charAt(Math.floor(Math.random() * characters.length));
}
} while (Array.from(generatedStrings.values()).includes(result));
generatedStrings.set(original, result);
return result;
},
},
})
);
}
return config;
},
// カスタムヘッダー
async headers() {
return [
{
source: '/(.*)',
headers: [
{
key: 'Strict-Transport-Security',
value: 'max-age=63072000; includeSubDomains; preload',
},
],
},
];
},
};
export default nextConfig;