* 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
* ensure postcss 7 is dropped from dev dependencies as well
Drop incorrect "help" text
* ensure we are cloning nodes
This is an issue in postcss 7 and fixed in postcss 8. However the compat build still suffers form this issue.
* add tests for the --postcss option in the new CLI
* add `oneOf` ability to the `arg()` functionality
By default, `arg()` doesn't have a way to define multiple types. We want
the possibility of using `--postcss` (Boolean) or `--postcss
./custom-path.js`. But by default this is not possible.
This commit will allow us to do a few things, mainly:
- Keep the same API using the `{ type: oneOf(String, Boolean), description: '...' }`
- Keep the `--help` output similar
What we did behind the scenes is make sure to put the non recognized
flags in the `_` arguments list. This is possible by doing `permissive:
true`. We then manually parse those and resolve the correct value.
* ensure that we can use a custom `--postcss ./with-custom-path.js`
* fix --help output in tests
* add tests to ensure we can use `purge.safelist`
* implement the `purge.safelist` for strings
* proxy `purge.safelist` to `purge.options.safelist`
This allows us to have a similar API in `AOT` and `JIT` mode.
* only proxy `purge.safelist` to `purge.options.safelist` if
`purge.options.safelist` doesn't exists yet.
* Fix issue where disabled corePlugins can't be re-enabled
* Disable caretColor and content core plugins by default, enable in JIT
* Don't disable caretColor/content in default config stub, hard-code for AOT instead
But with ability to still opt-in through your own config. Somewhat messy, but goal is to keep the messes in the AOT path and keep the JIT path pure.
* Fix style
* Revert unnecessary changes
* Fix style
* Remove watcher from context
* WIP
* WIP
* format
* abstract configDependencies
* abstract fileModifiedMap
* abstract candidateFiles
* abstract changedContent to each strategy
* little bit of cleanup
* formatting
Co-authored-by: Adam Wathan <adam.wathan@gmail.com>