Почему Vite вообще не создает файл app.css?

Вопрос или проблема

Я использую Laravel с FilamentPHP, административная панель готова. Теперь я начал добавлять фронтенд-часть, как я могу выяснить, почему файл .css отсутствует в /public/build/assets?

Я пробовал npm run dev и npm run build.

Спасибо

Моя конфигурация vite:

import { defineConfig } from 'vite';
import laravel, { refreshPaths } from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [
        // laravel([
        //     'resources/css/app.css',
        //     'resources/js/app.js',
        // ]),
        laravel({
            input: ['resources/css/app.css', 'resources/js/app.js'],
            refresh: [
                ... refreshPaths,
                'app/Livewire/**',
                'app/Filament/**',
            ],
        }),
    ],
});

Мой макет приложения:

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="csrf-token" content="{{ csrf_token() }}">

    <title> {{ isset($title) ? $title . ' - ' : '' }}{{ config('app.name', '') }}</title>

    <!-- Шрифты -->
    <link rel="preconnect" href="https://fonts.bunny.net">
    <link href="https://fonts.bunny.net/css?family=figtree:400,500,600&display=swap" rel="stylesheet" />

    <!-- Скрипты -->
    @vite(['resources/css/app.css', 'resources/js/app.js'])

    <!-- Стили -->
    @livewireStyles

</head>

Конфигурационный файл Tailwind:

import defaultTheme from 'tailwindcss/defaultTheme';
import forms from '@tailwindcss/forms';
import typography from '@tailwindcss/typography';

/** @type {import('tailwindcss').Config} */
export default {
    content: [
        './vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php',
        './storage/framework/views/*.php',
        './resources/views/**/*.blade.php',
    ],

    theme: {
        extend: {
            fontFamily: {
                sans: ['Figtree', ...defaultTheme.fontFamily.sans],
            },
        },
    },

    plugins: [forms, typography],
};

Конфигурация Postcss:

export default {
    plugins: {
        tailwindcss: {},
        autoprefixer: {},
    },
};

Файл package.json:

{
    "private": true,
    "type": "module",
    "scripts": {
        "dev": "vite",
        "build": "vite build"
    },
    "devDependencies": {
        "@tailwindcss/forms": "^0.5.2",
        "@tailwindcss/typography": "^0.5.0",
        "autoprefixer": "^10.4.20",
        "axios": "^1.6.4",
        "laravel-vite-plugin": "^1.0",
        "postcss": "^8.4.47",
        "tailwindcss": "^3.4.12",
        "vite": "^5.4.7"
    }
}

λ npm run build

> build
> vite build

vite v5.4.7 building for production...
✓ 53 модуля преобразовано.
public/build/manifest.json            0.29 kB │ gzip:  0.15 kB
public/build/assets/app-l0sNRNKZ.js   0.00 kB │ gzip:  0.02 kB
public/build/assets/app-z-Rg4TxU.js  35.05 kB │ gzip: 14.08 kB
✓ собрано за 1.70s

Я пытался удалить node_modules и переустановить с помощью npm i. Также обновил Node до версии v20.17.0

Ответ или решение

Причин, по которым Vite может не создавать файл app.css, может быть несколько. Давайте рассмотрим основные шаги для диагностики проблемы и её решения.

1. Проверка подключения CSS файла

В вашем конфиге Vite вы подключаете app.css правильно:

laravel({
    input: ['resources/css/app.css', 'resources/js/app.js'],
    // ...
}),

Убедитесь, что файл resources/css/app.css существует и содержит CSS-код, который вы ожидаете. Если файл пуст или отсутствует, Vite не создаст его в public.

2. Проверка корректности конфигурации Tailwind CSS

Проверьте, правильно ли настроена конфигурация Tailwind CSS. Ваш файл конфигурации Tailwind (tailwind.config.js) указывает, где искать классы, которые будут скомпилированы. Убедитесь, что вы добавили правильные пути к вашим Blade-шаблонам, чтобы все используемые классы были найдены.

content: [
    './vendor/laravel/framework/src/Illuminate/Pagination/resources/views/*.blade.php',
    './storage/framework/views/*.php',
    './resources/views/**/*.blade.php',
],

Если у вас есть другие Blade-шаблоны или компоненты, использующие классы Tailwind, их также следует добавить в список content.

3. Убедитесь, что стили компилируются

Проверьте, вызывается ли файл app.css при сборке. Для этого посмотрите на вывод консоли после выполнения команды npm run build. Если в консоли нет упоминаний о CSS, то проблема может быть в самой конфигурации.

4. Обновление зависимостей

Вы упомянули, что удалили папку node_modules и переустановили зависимости. Также следует убедиться, что у вас установлены последние версии всех зависимостей. Используйте команду:

npm outdated

Это покажет, есть ли доступные обновления для ваших библиотек. Если есть, обновите их.

5. Проверка конфигурации PostCSS

Убедитесь, что ваш postcss.config.js настроен правильно. У вас все выглядит хорошо, но проверьте, нет ли синтаксических ошибок:

export default {
    plugins: {
        tailwindcss: {},
        autoprefixer: {},
    },
};

6. Уведомления об ошибках

После выполнения npm run build, проверьте вывод на наличие ошибок или предупреждений. Если что-то идет не так, Vite может пропустить создание CSS-файла, если имеются ошибки в JavaScript или в CSS.

7. Проверка консоли разработчика

Если вы используете команду npm run dev, откройте консоль браузера и проверьте, загружается ли app.css и отсутствуют ли ошибки загрузки.

Заключение

Если ни один из вышеперечисленных методов не помог выявить проблему, возможно, стоит проверить другие элементы конфигурации вашего проекта или даже создать минимальный проект с только Vite и TailwindCSS для изоляции проблемы.

Надеюсь, эти шаги помогут вам разобраться, почему файл app.css не создается. Если у вас остались вопросы, не стесняйтесь задавать их!

Оцените материал
Добавить комментарий

Капча загружается...