diff --git a/CHANGELOG.md b/CHANGELOG.md index 6a4a7acb6eef..57704b7654d2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Allow default ring color to be a function ([#7587](https://github.com/tailwindlabs/tailwindcss/pull/7587)) - Don't inherit `to` value from parent gradients ([#8489](https://github.com/tailwindlabs/tailwindcss/pull/8489)) - Remove process dependency from log functions ([#8530](https://github.com/tailwindlabs/tailwindcss/pull/8530)) +- Ensure we can use `@import 'tailwindcss/...'` without node_modules ([#8537](https://github.com/tailwindlabs/tailwindcss/pull/8537)) ### Changed diff --git a/src/cli.js b/src/cli.js index ad6cdf1c710e..2c48af64514f 100644 --- a/src/cli.js +++ b/src/cli.js @@ -568,10 +568,20 @@ async function build() { tailwindPlugin.postcss = true + let IMPORT_COMMENT = '__TAILWIND_RESTORE_IMPORT__: ' + let [beforePlugins, afterPlugins, postcssOptions] = includePostCss ? await loadPostCssPlugins() : [ [ + (root) => { + root.walkAtRules('import', (rule) => { + if (rule.params.slice(1).startsWith('tailwindcss/')) { + rule.after(postcss.comment({ text: IMPORT_COMMENT + rule.params })) + rule.remove() + } + }) + }, (() => { try { return require('postcss-import') @@ -579,6 +589,19 @@ async function build() { return lazyPostcssImport() })(), + (root) => { + root.walkComments((rule) => { + if (rule.text.startsWith(IMPORT_COMMENT)) { + rule.after( + postcss.atRule({ + name: 'import', + params: rule.text.replace(IMPORT_COMMENT, ''), + }) + ) + rule.remove() + } + }) + }, ], [], {},