반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- MySQL
- 댓글달기
- storybook
- v-html
- 자료구조
- Vue
- State
- Vue.js
- scss
- Vue transition
- HOC
- nodejs
- webpack
- TypeScript
- express
- event
- vuex
- ES6
- 자바스크립트
- App.vue
- sass
- jsx
- CSS
- mapGetters
- Wecode
- JavaScript
- 쉬운설명
- react
- input
- 리액트
Archives
- Today
- Total
익명의 개발노트
[vue.js] storybook absolute path 설정 본문
반응형
Vue 자체에 절대경로 설정은 @로 내장되어있는데,
스토리 북에서 글로벌 .scss 파일을 지역 scss 파일에 include 혹은 다른 작업을 하기위해 아래와 같이 import 하는 경우
//지역 컴포넌트
@import '@/assets/common-stylesheets/index.scss'; //절대경로설정
.root-header{
@include size(100%, 50px); //include를 쓰려면 글로벌에서 mix인한 내용을 불러와야함
}
웹팩 에러가 나는 것을 볼 수 있다. (해당이슈는 스토리북 이슈에도 있으나, 개발진들이 답을 달아주지는 않은 상황)
상대경로는 작동하는데, 지역 scss 에서 import 할때마다 경로가 다르면
나중에 유지보수 하기에 성가신 상황이 올 수도 있다.
뷰에서 해결할 수 있는 방법은 path에 alias를 주는 방법 밖에 없다.
먼저 .storybook 안에 있는 webpack.config.js 에다가 아래와 같이 코드를 입력해 준다.
//webpack.config.js
config.resolve.extensions.push(".scss");
config.resolve.alias = {
...config.resolve.alias,
"@": path.resolve(__dirname, "../src"),
};
웹팩 파일을 보면 아래와 같다.
//webpack.config.js
const path = require('path');
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
module.exports = async ({ config, mode }) => {
config.resolve.extensions.push('.ts', '.tsx', '.vue', '.css', '.less', '.scss', '.sass', '.html');
config.module.rules.push({
test: /\.ts$/,
exclude: /node_modules/,
use: [
{
loader: 'ts-loader',
options: {
appendTsSuffixTo: [/\.vue$/],
transpileOnly: true // used with ForkTsCheckerWebpackPlugin
},
},
],
});
config.module.rules.push({
test: /\.scss$/,
use: ['style-loader', 'css-loader', 'sass-loader'],
include: path.resolve(__dirname, '../'),
});
//추가된 부분
config.resolve.extensions.push(".scss");
config.resolve.alias = {
...config.resolve.alias,
"@": path.resolve(__dirname, "../src"),
};
config.plugins.push(new ForkTsCheckerWebpackPlugin());
return config;
}
설정 후 yarn storybook 을하면 실행이 잘된다.
참고자료 : https://stackoverflow.com/questions/49748446/aliases-dont-seem-to-work-in-vue-storybook
반응형
'코딩일기 > TIL' 카테고리의 다른 글
[vue.js] How to preview multiple images before upload? (0) | 2020.04.22 |
---|---|
[vue.js] vuedraggable.js로 드래그 구현하기 (0) | 2020.04.16 |
[vue.js] typescript + storybook 설정하기 (0) | 2020.03.20 |
[typescript] vuex-module화 된 내용 getters 하는법 (0) | 2020.03.19 |
[vue.js] vue+storybook 적용하기 (0) | 2020.03.17 |
Comments