fetch
๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ์ปดํฌ๋ํธ ์คํ ๋ฆฌ๋ฅผ ์์ฑํ ๋ CORS ์ด์ ํด๊ฒฐ์ด ํ์ํ์ต๋๋ค.
์คํ ๋ฆฌ๋ถ์ ๋น๋ ์ webpack
์ ์ฌ์ฉํ๊ณ ์๊ณ , dev server ์คํ ์ middleware
์คํ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๐ storybook middleware ์ถ๊ฐํ๊ธฐ
์๋ฅผ ๋ค์ด ๋ค์๊ณผ ๊ฐ์ fetch ์์ฒญ์ด ์๊ณ , /api
์ ๋ํ ํ๋ฝ์๋ฅผ ๊ตฌ์ฑํ๊ณ ์ถ๋ค๊ณ ํ๊ฒ ์ต๋๋ค.
fetch('/api/blahblah')
ํจํค์ง๋ฅผ ์ถ๊ฐํด์ค๋๋ค.
$ npm i -D http-proxy-middleware
middleware.js
ํ์ผ์ ์์ฑํด ์ค๋๋ค.
target๊ณผ origin์ ์ค์ ํด์ ์์ฒญ์ ํ๋ก์ฑํ๋ ๊ท์น์ ์ถ๊ฐํฉ๋๋ค.
// .storybook/middleware.js
const { createProxyMiddleware } = require('http-proxy-middleware');
module.exports = function middleware(router) {
router.use(
'/api',
createProxyMiddleware({
target: 'http://api-gateway',
changeOrigin: true,
pathRewrite: { '^/api': '' },
}),
);
};
์ด์ /api ๋ก ์ ์ ๋๋ ์์ฒญ์ ํ๋ฝ์ ํด์ origin ์ด ๋ณ๊ฒฝ๋ ์์ฒญ์ผ๋ก ํธ์ถํฉ๋๋ค.
- ๋ณ๊ฒฝ ์ : http://localhost:6006/api/product
- ๋ณ๊ฒฝ ํ: http://api-gateway/product
๐ ์ฐธ๊ณ ์๋ฃ
Feature: custom proxy settings · Issue #208 · storybookjs/storybook
๋ฐ์ํ
'๐จโ๐ป web.dev > fe' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ๊ทํํ์๊ณผ ํจ๊ป URL ๋ฏ์ด๋ณด๊ธฐ (0) | 2024.03.01 |
---|---|
Chrome ๊ฐ๋ฐ์๋๊ตฌ๋ฅผ ์ด์ฉํด์ ์์น์ ๋ณด ์ค์ ํ๊ธฐ (0) | 2024.03.01 |
์ ๊ท์์ผ๋ก camel-case ํ์ฑํ๊ธฐ (1) | 2024.02.24 |
rAF ํ๋ ์ ๋น์จ ์กฐ์ ํ๊ธฐ (0) | 2024.01.30 |
point-in-polygon ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๊ตญ๋ด์ธ ํ๋จํ๊ธฐ (0) | 2024.01.30 |
๐ฌ ๋๊ธ