-
Notifications
You must be signed in to change notification settings - Fork 1
/
nuxt.config.js
74 lines (61 loc) · 3.18 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
// process.env.PORT и process.env.BASE_URL берутся из файла .env
module.exports = {
// Указываем порт, на котором будет работать приложение.
server: {
port: process.env.PORT,
host: "localhost",
},
// Передаём во фронт данные из .env. Эта переменная будет доступна через process.env.baseUrl.
// Важно! Эти данные будут видны в коде сайта. Не передавайте таким образом пароли и т.д.
// Если данные есть в .env, но их не передали на фронт, то их нет в коде сайта, они доступны только в бэкенде.
env: {
baseUrl: process.env.BASE_URL,
},
// Глобальные настройки секции Head. Можно прописать общие мета-теги, атрибуты и прочее.
head: {
htmlAttrs: { lang: "ru" },
meta: [
{ name: "viewport", content: "width=device-width, initial-scale=1" },
{ name: "theme-color", content: "#000000" },
{ name: "format-detection", content: "telephone=no" },
],
link: [{ rel: "icon", href: "/favicon.ico", type: "image/x-icon" }],
},
// Включаем автоматическое подключение компонентов.
components: true,
// Отключаем передачу анонимных данных о работе приложения в Nuxt.
telemetry: false,
// Отключаем индикацию загрузки страниц.
loading: false,
loadingIndicator: false,
// Отключаем предварительную загрузку контента, на который есть ссылки на текущей страницы.
router: { prefetchLinks: false },
//Подключаем модуль Axios для выполнения запросов к бэкенду.
modules: ["@nuxtjs/axios"],
//Подключаем общий файл со стилями.
css: ["@/assets/css/main.css"],
//Прописываем путь к бэку для axios
axios: { baseURL: process.env.BASE_URL },
build: {
// Просим стили вырезать в отдельные файлы. Иначе css будет inline.
extractCSS: true,
},
render: {
// Добавляем async к скриптам Nuxt.
asyncScripts: true,
// Используем Content Security Policy для защиты от XSS атак.
// Для примера я добавил записи, которые требуются для корректной работы Яндекс.Метрики и встраивания видео из Youtube.
csp: {
unsafeInlineCompatibility: true,
reportOnly: false,
policies: {
"default-src": ["'self'"],
"img-src": ["'self'", "https://mc.yandex.ru"],
"script-src": ["'self'", "'unsafe-inline'", "https://mc.yandex.ru"],
"style-src": ["'self'", "'unsafe-inline'"],
"connect-src": ["'self'", "https://mc.yandex.ru"],
"frame-src": ["'self'", "https://www.youtube.com"],
},
},
},
};