NextJS + TypeScript + TailwindCSS + Storybook 프로젝트 설정
TUTORIAL BASED ON STORYBOOK v5, ON v6 EVERYTHING STORYBOOK-RELATED WORKS OUT OF THE BOX!
다음은 NextJS+TypeScript+TailwindCSS+Storybook 조합을 시작하고 실행하기 위한 간단한 가이드입니다. 이 특정 문제를 처리하는 방법에 대한 특정 가이드가 예기치 않게 부족했기 때문에 원래 예상했던 것보다 훨씬 더 많은 시간이 걸렸습니다. 시나리오와 원하는 대로 모든 것을 설정하기 위해 조회해야 하는 정보의 희소성.
NEXTJS 설정
yarn create next-app
그게 다야. 완료. 완전한 기능을 갖춘 NextJS 앱은 공식 스타터 키트를 사용하여 생성됩니다.
TAILWINDCSS 설정
yarn add -D tailwindcss postcss-preset-env
- TailwindCSS 라이브러리 및 몇 가지 유용한 PostCSS polyfill을 설치합니다npx tailwind init
를 사용하여 tailwind.config.js
파일을 생성합니다. module.exports = {
purge: ['./components/**/*.tsx', './pages/**/*.tsx'],
theme: {
extend: {},
},
variants: {},
plugins: [],
}
postcss.config.js
module.exports = {
plugins: [
"tailwindcss",
"postcss-preset-env"
]
};
/styles/index.css
를 만들고 postcss-import
에 친숙한 @import
지시문을 사용하여 채웁니다(@tailwind
대신)@import "tailwindcss/base";
@import "tailwindcss/components";
@import "tailwindcss/utilities";
타이프스크립트 설정
yarn add --dev typescript @types/react @types/node
touch tsconfig.json
yarn next
NextJS를 시작하면 새로 생성된 tsconfig.json
을 자동으로 인식하고 유효한 구성 json을 여기에 삽입합니다/pages/_app.tsx
파일 만들기import React from "react";
import "../styles/index.css"; // <- applied everywhere in the NextJS application scope
const MyApp = ({ Component, pageProps }) => {
return <Component {...pageProps} />;
};
export default MyApp;
스토리북 설정
yarn add @storybook/react babel-loader @babel/core awesome-typescript-loader react-docgen-typescript-loader -D
mkdir .storybook
cp ./tsconfig.json ./.storybook/
/.storybook/tsconfig.json
{
"compilerOptions": {
"target": "es5",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": false,
"forceConsistentCasingInFileNames": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "react" // <- important!
},
"exclude": ["node_modules"],
"include": [ // <- important!
"../types.d.ts",
"../next-env.d.ts",
"../**/*.stories.ts",
"../**/*.stories.tsx"
]
}
/.storybook/main.js
를 만들고 다음 구성을 자유롭게 복사하십시오.const path = require("path");
module.exports = {
stories: ["../components/**/**/*.stories.tsx"],
webpackFinal: async (config) => {
config.module.rules.push({
test: /\.(ts|tsx)$/,
use: [
{
loader: require.resolve("awesome-typescript-loader"),
options: {
configFileName: path.resolve(__dirname, "./tsconfig.json"),
},
},
/*
** OPTIONAL **
Basically a webpack loader used to
generate docgen information from TypeScript React components.
The primary use case is to get the prop types
table populated in the Storybook Info Addon.
*/
{
loader: require.resolve("react-docgen-typescript-loader"),
options: {
tsconfigPath: path.resolve(__dirname, "./tsconfig.json"),
},
},
],
});
config.resolve.extensions.push(".ts", ".tsx");
return config;
},
};
/.storybook/preview.js
를 만들고 다음과 같이 스타일시트를 가져오는 데 사용합니다.// The preview application is essentially just your stories with
// a framework-agnostic 'router'.
// It renders whichever story the manager application tells it to render.
// In this case we just use it to import the stylesheet and inject it
// in the context of our stories
import "../styles/index.css";
postcss.config.js
합니다. 종속성을 해결하는 동안 Storybook의 웹팩 프로세스에서 발생할 수 있는 모든 문제를 해결하기 위해 이것은 매우 중요합니다!module.exports = {
plugins: {
tailwindcss: {},
"postcss-preset-env": {}
}
};
완료
이제 이 강력한 도구 세트를 사용하여 자신의 구성 요소 폴더(예: /components/button/1-button.stories.tsx
)에 구성 요소 스토리를 만들 수 있습니다.
P.S.: If you wish to organize your Storybook stories using a different folder structure, you'll need to do no more than editing the stories
property inside the exported configuration in /.storybook/main.js
using your desired glob patterns
Reference
이 문제에 관하여(NextJS + TypeScript + TailwindCSS + Storybook 프로젝트 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/hood/nextjs-typescript-tailwindcss-storybook-project-setup-4clj
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
P.S.: If you wish to organize your Storybook stories using a different folder structure, you'll need to do no more than editing the stories
property inside the exported configuration in /.storybook/main.js
using your desired glob patterns
Reference
이 문제에 관하여(NextJS + TypeScript + TailwindCSS + Storybook 프로젝트 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/hood/nextjs-typescript-tailwindcss-storybook-project-setup-4clj텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)