43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import { joinPathFragments, ProjectConfiguration, Tree } from '@nx/devkit';
|
|
|
|
import { SetupTailwindOptions } from '../schema';
|
|
|
|
const knownStylesheetLocations = [
|
|
// What we generate by default
|
|
'src/styles.css',
|
|
'src/styles.scss',
|
|
'src/styles.less',
|
|
|
|
// What we generate for nuxt by default
|
|
'src/assets/css/styles.css',
|
|
'src/assets/css/styles.scss',
|
|
'src/assets/css/styles.less',
|
|
|
|
// Other common locations (e.g. what `npm create vue` does)
|
|
'src/assets/styles.css',
|
|
'src/assets/styles.scss',
|
|
'src/assets/styles.less',
|
|
];
|
|
|
|
export function addTailwindStyleImports(
|
|
tree: Tree,
|
|
project: ProjectConfiguration,
|
|
_options: SetupTailwindOptions
|
|
) {
|
|
const stylesPath = knownStylesheetLocations
|
|
.map((file) => joinPathFragments(project.root, file))
|
|
.find((file) => tree.exists(file));
|
|
|
|
if (!stylesPath) {
|
|
throw new Error(
|
|
`Could not find the stylesheet to update. Use --stylesheet to specify this path (relative to the workspace root).`
|
|
);
|
|
}
|
|
|
|
const content = tree.read(stylesPath).toString();
|
|
tree.write(
|
|
stylesPath,
|
|
`@tailwind base;\n@tailwind components;\n@tailwind utilities;\n${content}`
|
|
);
|
|
}
|