-
Notifications
You must be signed in to change notification settings - Fork 12k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix(@angular-devkit/build-angular): add
tailwindcss
support for ver…
…sion 3 (cherry picked from commit 0323a35)
- Loading branch information
1 parent
c43c4e9
commit 1ddbd75
Showing
3 changed files
with
57 additions
and
7 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
import { deleteFile, expectFileToMatch, writeFile } from '../../../utils/fs'; | ||
import { installPackage, uninstallPackage } from '../../../utils/packages'; | ||
import { ng, silentExec } from '../../../utils/process'; | ||
import { expectToFail } from '../../../utils/utils'; | ||
|
||
export default async function () { | ||
// Install Tailwind | ||
await installPackage('tailwindcss@3'); | ||
|
||
// Create configuration file | ||
await silentExec('npx', 'tailwindcss', 'init'); | ||
|
||
// Add Tailwind directives to a component style | ||
await writeFile('src/app/app.component.css', '@tailwind base; @tailwind components;'); | ||
|
||
// Add Tailwind directives to a global style | ||
await writeFile('src/styles.css', '@tailwind base; @tailwind components;'); | ||
|
||
// Build should succeed and process Tailwind directives | ||
await ng('build', '--configuration=development'); | ||
|
||
// Check for Tailwind output | ||
await expectFileToMatch('dist/test-project/styles.css', /::placeholder/); | ||
await expectFileToMatch('dist/test-project/main.js', /::placeholder/); | ||
await expectToFail(() => | ||
expectFileToMatch('dist/test-project/styles.css', '@tailwind base; @tailwind components;'), | ||
); | ||
await expectToFail(() => | ||
expectFileToMatch('dist/test-project/main.js', '@tailwind base; @tailwind components;'), | ||
); | ||
|
||
// Remove configuration file | ||
await deleteFile('tailwind.config.js'); | ||
|
||
// Ensure Tailwind is disabled when no configuration file is present | ||
await ng('build', '--configuration=development'); | ||
await expectFileToMatch('dist/test-project/styles.css', '@tailwind base; @tailwind components;'); | ||
await expectFileToMatch('dist/test-project/main.js', '@tailwind base; @tailwind components;'); | ||
|
||
// Recreate configuration file | ||
await silentExec('npx', 'tailwindcss', 'init'); | ||
|
||
// Uninstall Tailwind | ||
await uninstallPackage('tailwindcss'); | ||
|
||
// Ensure installation warning is present | ||
const { stderr } = await ng('build', '--configuration=development'); | ||
if (!stderr.includes("To enable Tailwind CSS, please install the 'tailwindcss' package.")) { | ||
throw new Error('Expected tailwind installation warning'); | ||
} | ||
|
||
// Tailwind directives should be unprocessed with missing package | ||
await expectFileToMatch('dist/test-project/styles.css', '@tailwind base; @tailwind components;'); | ||
await expectFileToMatch('dist/test-project/main.js', '@tailwind base; @tailwind components;'); | ||
} |