* 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>
Do not require NODE_ENV to be set to 'production' as well, as using
the --purge option in the CLI should be explicit enough.
Co-authored-by: Arnout Roemers <roemers@zorgdomein.nl>
* add nesting plugin
* rename @tailwindcss/nesting to tailwindcss/nesting
* ignore the built `nesting` plugin
* add a postcss7 compat version
* include `nesting` plugin when publishing
* add `build-plugins` script
This will allow us to keep the plugins in their dedicated folders +
tests + postcss7 compatibility files. However, when we copy over the
plugins to the root. For example `plugins/nesting/` -> `nesting/` we
skip files like `.test.js` and `.postcss7.js`.
* build plugins when running `prepublishOnly`
* improve compat mode
We will use a glob so that we can move all *.postcss7.* files to just
*.* likewise we will also backup to *.* to *.postcss8.* for restoring
purposes.
Concrete example:
- Current state:
- index.js // PostCSS 8 implementation
- index.postcss7.js // PostCSS 7 implementation
- Run "compat"
- index.js // PostCSS 7 implementation
- index.postcss7.js // PostCSS 7 implementation
- index.postcss8.js // PostCSS 8 implementation (Backup of original)
- Run "compat:restore"
- index.js // PostCSS 8 implementation
- index.postcss7.js // PostCSS 7 implementation
- X index.postcss8.js // PostCSS 8 implementation (Removed)
* Update README.md
* ensure we `npm install` before publishing
Co-authored-by: Adam Wathan <adam.wathan@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
* 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.
We always use `none` for other utilities where the values have string names like `sm`, but for `blur` I chose `blur-0` for some idiotic reason. Can't have that.
* 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`