Как включить Tailwind.css для сборника рассказов в библиотеке Angular рабочей области Nx?
Я создал библиотеку Angular в рабочей области Nx для предоставления ui-компонентов (ui-kit). В эту библиотеку я добавил Storybook, которая работала нормально. Теперь я также хочу включить Tailwind, потому что компоненты используют его.
я использовал
nx generate @nrwl/angular:setup-tailwind --project=ui-kit --buildTarget=build-storybook
команда для настройки попутного ветра для этой библиотеки. Библиотека сборная.
У меня есть tailwind.config.js, который выглядит так:
const { createGlobPatternsForDependencies } = require('@nrwl/angular/tailwind');
const { join } = require('path');
module.exports = {
content: [
join(__dirname, 'src/**/!(*.stories|*.spec).{ts,html}'),
...createGlobPatternsForDependencies(__dirname),
],
theme: {
extend: {},
},
plugins: [],
};
и добавил tailwind-imports.css с содержимым
@tailwind base;
@tailwind components;
@tailwind utilities;
как импорт в
preview.js
в папке .storybook библиотеки.
Но без попутного ветра.
Есть ли какой-нибудь рецепт для подражания или какой-нибудь работающий пример с nx, angular, storybook и tailwind?
Использование nx версии 13.8.3
Большое спасибо за любую помощь!
4 ответа
У меня работает версия React, надеюсь, это поможет.
Имейте в виду, что для отражения обновлений пользовательского интерфейса сборник рассказов требует жесткого обновления, так как нет горячей перезагрузки из коробки.
Мы будем использовать версию PostCSS, показанную здесь .
Вам понадобятся следующие файлы:
// libs/{app-name}/tailwind.config.js
const { createGlobPatternsForDependencies } = require('@nrwl/react/tailwind');
const { join } = require('path');
module.exports = {
content: [
join(__dirname, 'src/**/!(*.stories|*.spec).{ts,tsx,html}'),
...createGlobPatternsForDependencies(__dirname),
],
theme: {
extend: {},
},
variants: {},
plugins: [],
};
// libs/{app-name}/postcss.config.js
const { join } = require('path');
module.exports = {
plugins: {
tailwindcss: {
config: join(__dirname, 'tailwind.config.js')
},
autoprefixer: {},
},
};
// libs/{app-name}/.storybook/main.js
const rootMain = require('../../../.storybook/main');
module.exports = {
...rootMain,
core: { ...rootMain.core, builder: 'webpack5' },
stories: [
...rootMain.stories,
'../src/lib/**/*.stories.mdx',
'../src/lib/**/*.stories.@(js|jsx|ts|tsx)',
],
addons: [...rootMain.addons, '@nrwl/react/plugins/storybook'],
webpackFinal: async (config, { configType }) => {
// apply any global webpack configs that might have been specified in .storybook/main.js
if (rootMain.webpackFinal) {
config = await rootMain.webpackFinal(config, { configType });
}
// add your own webpack tweaks if needed
return config;
},
};
// libs/{app-name}/.storybook/preview.js
import './tailwind-imports.css';
// libs/{app-name}/.storybook/tailwind-imports.css
@tailwind base;
@tailwind components;
@tailwind utilities;
В project.json (внутри вашей библиотеки) добавьте массив «styles» в цель «build-storybook»:
"build-storybook": {
"executor": "@nrwl/storybook:build",
"outputs": ["{options.outputPath}"],
"options": {
"uiFramework": "@storybook/angular",
"outputPath": "dist/storybook/angular",
"styles": ["libs/<library_name>/src/styles.scss"], // <------ HERE
"config": {
"configFolder": "libs/<library_name>/.storybook"
},
"projectBuildConfig": "angular:build-storybook"
},
"configurations": {
"ci": {
"quiet": true
}
}
}
И внутри styles.scss:
@tailwind base;
@tailwind components;
@tailwind utilities;
Вот статья, объясняющая, как это сделать: Настройте Tailwind CSS и Storybook с помощью Angular в рабочей области Nx.
Кроме того, вот образец репозитория , созданный Лео из команды Nx.
добавьте файл styles.css в папку .storybook в библиотеке и убедитесь, что у вас есть tailwind.config.js в этой библиотеке!
"storybook": {
"executor": "@nrwl/storybook:storybook",
"options": {
"styles": ["libs/shared/ui-components/.storybook/styles.css"],
"uiFramework": "@storybook/angular",
"port": 4400,
"config": {
"configFolder": "libs/shared/ui-components/.storybook"
},
"projectBuildConfig": "shared-ui-components:build-storybook"
},
"configurations": {
"ci": {
"quiet": true
}
}
}
в файле styles.css вы пишете:
@tailwind base;
@tailwind components;
@tailwind utilities;