Очистка CSS удаляет стороннюю библиотеку css - Laravel Mix / TailwindCSS - PullRequest
0 голосов
/ 07 апреля 2020

Я установил Tailwind CSS & Purge CSS в существующее приложение, которое использует пользовательские CSS, а также некоторые сторонние библиотеки. Я настроил Purge CSS для очистки только одного файла попутного ветра, но он по какой-то причине удаляет селекторы css из сторонних библиотек, возможно, моя конфигурация неверна:

webpack.mix. js

const mix         = require("laravel-mix");
const purgeCss    = require("@fullhuman/postcss-purgecss")
const tailwindCss = require("tailwindcss")

mix.webpackConfig(require("./webpack.parts"));

// Don't want to purge anything under app.scss, it contains custom css &
// current app related stuff
mix.sass("resources/sass/app.scss", "public/css").version();

// I simply want to add tailwind so I can use it in addition to whatever
// css the app currently uses
mix.postCss("resources/sass/tailwind.pcss", "public/css", [
    tailwindCss,
    ...process.env.NODE_ENV === "production" ? [purgeCss(
        {
            content: [
                "./resources/**/*.js",
                "./resources/**/*.blade.php",
            ],

            css: [
                "./public/css/tailwind.css"
            ]
        }
    )] : []
])

Попытка изменить css путь с ./public/css/tailwind.css на ./resources/sass/tailwind.pcss, но не помогла

Редактировать: Похоже, я должен был двигаться некоторые импорты зависимостей из app.scss, чтобы заставить его работать, хотя я не уверен, почему:

Добавил этот фрагмент прямо перед mix.sass(app.scss)

mix.styles(
    [
        "./node_modules/datatables.net-bs4/css/dataTables.bootstrap4.css",
        "./node_modules/bootstrap-datepicker/dist/css/bootstrap-datepicker.standalone.css",
        "./node_modules/animate.css/animate.css",
        "./node_modules/react-datepicker/dist/react-datepicker.css",
    ],
    "public/css/vendors.css"
).version()

1 Ответ

1 голос
/ 08 апреля 2020

Я не могу воспроизвести вашу ошибку, этот код прекрасно работает для меня.

const mix = require('laravel-mix');

const purgecss = require('@fullhuman/postcss-purgecss')({
    content: [
      'resources/**/*.blade.php',
    ],
    defaultExtractor: content => content.match(/[\w-/:]+(?<!:)/g) || []
  })

mix.sass('resources/sass/app.scss', 'public/css').version();


mix.postCss('resources/sass/tailwind.pcss', 'public/css', [
    require('tailwindcss'),
    ...process.env.NODE_ENV === 'production'
    ? [purgecss]
    : []
  ])
...