본문으로 건너뛰기

· 약 2분

storybook에서 rnencryptedstorage is undefined 에러가 뜬다면, 모킹을 해주지 않아서 나는 에러이다.

  1. mock 파일을 만들어준다.
노트

네이밍에 주의한다. react-native.js 로 만들면 다른 에러를 야기할 수 있음

__mocks__/react-native-encrypted-storage.js
const RNEncryptedStorage = {
setItem: jest.fn(() => Promise.resolve()),
getItem: jest.fn(() => Promise.resolve('{ "foo": 1 }')),
removeItem: jest.fn(() => Promise.resolve()),
clear: jest.fn(() => Promise.resolve()),
};

export default RNEncryptedStorage;
.storybook/main.js
const path = require('path');
const webpack = require('webpack');
import TsconfigPathsPlugin from 'tsconfig-paths-webpack-plugin';
import custom from '../webpack.config.js';

module.exports = {
stories: [
'../src/components/**/**/*.stories.@(js|jsx|ts|tsx|mdx)',
'../src/styles/*.stories.mdx',
],
addons: [
'@storybook/addon-links',
'@storybook/addon-essentials',
'@storybook/addon-interactions',
'@storybook/addon-controls',
'@storybook/addon-actions',
'@storybook/addon-mdx-gfm',
],
docs: {
autodocs: true,
},
features: {
interactionsDebugger: true,
},
webpackFinal: (config) => {
// ...
config.resolve.alias = {
...(config.resolve.alias || {}),
'react-native$': 'react-native-web',
'@storybook/react-native': '@storybook/react-webpack5',
// 이 코드를 추가한다.
'react-native-encrypted-storage':
'@react-native-async-storage/async-storage',
};

config.resolve.extensions = ['.web.js', '.tsx', '.ts', '.js'];

return {
...config,
module: {
...config.module,
rules: [...config.module.rules, ...custom.module.rules],
},
};
},
babel: (options) => {
options.plugins.push('babel-plugin-inline-react-svg');
return options;
},
framework: {
name: '@storybook/react-webpack5',
options: { fastRefresh: true },
},
};

· 약 1분

mac을 강제종료 한 후, vscode를 다시 켰을 때 엔터가 되지 않는 상황이 발생함 ctrl + Enter 를 하면 엔터가 되긴 하지만 근본적인 해결이 안 되고 있음.

해결법

vscode 확장 프로그램과 연관이 있을 확률이 높기 때문에 문제되는 확장 프로그램을 제거하고 다시 설치하기를 권장한다.

나는 vscode-styled-components 가 문제였음.

· 약 9분

예전에는 react-native에서 storybook을 사용하면 디바이스 위에 띄워졌다.

이미지

const module = STORYBOOK_START ? require('../storybook').default : App;

이러한 느낌으로 스위치 하듯이 써야 했고, 스토리북과 앱을 동시에 보기 힘들기 때문에 불편함이 이만저만이 아니었다.

이러한 불편함을 해소하기 위해 약간의 꼼수로 웹뷰로 띄워서 보는 게 최선이었는데 그 과정이 꽤 복잡했다.

어느 날 이마저도 통하지 않는 문제가 발생하여, 버그를 픽스했으나 임시방편에 불과해서 스토리북 자체를 업그레이드 시도했다.

참고로 스토리북을 업그레이드 하면, node_modules에서 @storybook/react/bin/index.js 파일을 읽지 못해, 기존에 쓰던 웹뷰 꼼수를 쓸 수 없게 된다.

· 약 2분
git push origin main

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:~
Please contact your system administrator.

Add correct host key in /Users/niege/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/niege/.ssh/known_hosts:2

RSA host key for github.com has changed and you have requested strict checking.
Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
  1. 이전 키를 제거한다.
ssh-keygen -R github.com
터미널
ssh-keygen -R github.com
# Host github.com found: line 2
/Users/niege/.ssh/known_hosts updated.
Original contents retained as /Users/niege/.ssh/known_hosts.old
  1. 새 RSA SSH 공개키 항목을 추가한다.
ssh-keygen -R github.com
curl -L https://api.github.com/meta | jq -r '.ssh_keys | .[]' | sed -e 's/^/github.com /' >> ~/.ssh/known_hosts

이때 'zsh: command not found: jq' 라고 뜬다면, jq를 따로 설치해주어야 한다.

brew install jq
  1. 다시 푸시해본다.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Are you sure you want to continue connecting (yes/no)? yes
  1. Warning이 발생한다면 Warning: the ECDSA host key for 'github.com' differs from the key for the IP address '00.200.000.000'

해당 아이피로 다시 명령어를 입력해준다.

ssh-keygen -R 20.200.245.247
# Host 20.200.245.247 found: line 12
/Users/niege/.ssh/known_hosts updated.
Original contents retained as /Users/niege/.ssh/known_hosts.old

참조

RSA SSH 호스트 키를 업데이트했습니다.