* Improve `purge` performance in layers mode
In layers mode, skip `purgecss` completely if source stylesheet does
not have any tailwind layers. For the legacy codebases with a lot of
non-tailwind stylesheets, it dratically improves the performance of
the production build.
* fix: purgecss should respect safelist.variables
* Generate plugin list file
Removes the importing of all plugins in src/util/resolveConfig to avoid importing CSS.
Import the built plugin list file instead.
* Use `process.cwd()` instead of `__dirname` to resolve path
Co-authored-by: Federico Ciardi <fed.ciardi@gmail.com>
* Import core plugin list in resolveConfig test
* Generate plugin list prebabelify and on install
* Move generation from install to postinstall
Co-authored-by: Federico Ciardi <fed.ciardi@gmail.com>
Co-authored-by: Federico Ciardi <fed.ciardi@gmail.com>
* use `~/.cache/tailwindcss` as default touch dir
When more tools catch up with the latest postcss dependency tracking,
then we probably don't even need this anymore. However, it is a good
practice to put (global) caches in ~/.cache and (global) configs in
~/.config
Fixes: #4569
* change test to verify @tailwind base slightly
Because of some changes in tailwind itself, the base selector contains a
ton of new --tw-* custom properties. Keeping this up to date might be a
bit of an annoying challenge. So instead we now check for the selector
to be present.
* add `tmp` package
* use a (simple) temporary file, instead of a full cache dir
* remove unused file
using syntax.js instead
* add a way to remove files that are generated from the tests
Essentially setting the restore cache contents to `null` as a special
value.
* combine the stdout and stderr output
* add jest-diff instead of relying on it existing *somewhere*
This also came with a small API change.
* add `--runInBand` to the test script
* add dedicated cli tests for the new Tailwind CLI