Releases: modern-agile-team/modern-kit
Releases · modern-agile-team/modern-kit
@modern-kit/utils@2.0.0
Release
@modern-kit/utils v2.0.0부터 SubPath
를 지원합니다.
SubPath
- 전체 모듈을 불러오는 것이 아닌 필요한 모듈만 직접 가져오기 때문에
불 필요한 코드를 불러오는 것을 방지
할 수 있으며,번들러가 모듈을 읽고, 식별하는 과정
을 최적화 할 수 있습니다. - 번들러가 개별 모듈을 더 잘 식별할 수 있기 때문에,
Tree-shaking
이 더욱 효과적으로 동작하도록 개선 할 수 있습니다. 이는 결과적으로 최종 번들 크기를 줄이는데 도움이 됩니다.
// 일반 케이스
import { flatten } from '@modern-kit/utils';
const arr = [1, [2, [3, 4], 5]];
const result = flatten(arr); // [1, 2, 3, 4, 5]
// SubPath 사용 예시
// tsconfig moduleResolution 옵션이 `bundler`일 경우
import { flatten } from '@modern-kit/utils/array/flatten';
// tsconfig moduleResolution 옵션이 `node`일 경우
import { flatten } from '@modern-kit/utils/dist/array/flatten';
const arr = [1, [2, [3, 4], 5]];
const result = flatten(arr); // [1, 2, 3, 4, 5]
Next.js 개발 환경에서 SubPath 사용 차이
SubPath 사용하지 않은 경우
import { flatten } from "@modern-kit/utils";
export default function Home() {
console.log(flatten([1, [2], [3], [4], [5]]));
return (
<div>{}</div>
);
}
첫 번째 이미지는 SubPath
를 사용하지 않은 경우입니다. 전체 모듈에서 flatten
을 가져온 경우입니다.
위 이미지와 같이 @modern-kit/utils
의 모든 모듈을 불러오는 것을 확인 할 수 있습니다.
SubPath 사용한 경우
// tsconfig moduleResolution 옵션이 `node`
import { flatten } from "@modern-kit/utils/dist/array/flatten";
export default function Home() {
console.log(flatten([1, [2], [3], [4], [5]]));
return (
<div>{}</div>
);
}
두 번째 이미지는 SubPath
를 사용한 경우입니다. 개별 경로를 통해 flatten
을 가져온 경우입니다.
첫 번째 케이스와 다르게 사용하는 @modern-kit/utils
의 flatten
만 불러오는 것을 확인 할 수 있습니다.
이러한 차이는 개발 서버 성능에 영향을 미칠 수 있습니다.
@modern-kit/react@2.0.0
Release
@modern-kit/react v2.0.0부터 SubPath
를 지원합니다.
SubPath
- 전체 모듈을 불러오는 것이 아닌 필요한 모듈만 직접 가져오기 때문에
불 필요한 코드를 불러오는 것을 방지
할 수 있으며,번들러가 모듈을 읽고, 식별하는 과정
을 최적화 할 수 있습니다. - 번들러가 개별 모듈을 더 잘 식별할 수 있기 때문에,
Tree-shaking
이 더욱 효과적으로 동작하도록 개선 할 수 있습니다. 이는 결과적으로 최종 번들 크기를 줄이는데 도움이 됩니다.
// 일반 케이스
import { useInterval } from '@modern-kit/react';
const App = () => {
useInterval(() => {
console.log('interval');
}, 300);
return <div>Modern Kit</div>;
}
// tsconfig moduleResolution 옵션이 `node`일 경우
import { useInterval } from '@modern-kit/react/dist/hooks/useInterval';
// tsconfig moduleResolution 옵션이 `bundler`일 경우
import { useInterval } from '@modern-kit/react/hooks/useInterval';
const App = () => {
useInterval(() => {
console.log('interval');
}, 300);
return <div>Modern Kit</div>;
}
Next.js 개발 환경에서 SubPath 사용 차이
SubPath 사용하지 않은 경우
import { flatten } from "@modern-kit/utils";
export default function Home() {
console.log(flatten([1, [2], [3], [4], [5]]));
return (
<div>{}</div>
);
}
첫 번째 이미지는 SubPath
를 사용하지 않은 경우입니다. 전체 모듈에서 flatten
을 가져온 경우입니다.
위 이미지와 같이 @modern-kit/utils
의 모든 모듈을 불러오는 것을 확인 할 수 있습니다.
SubPath 사용한 경우
// tsconfig moduleResolution 옵션이 `node`
import { flatten } from "@modern-kit/utils/dist/array/flatten";
export default function Home() {
console.log(flatten([1, [2], [3], [4], [5]]));
return (
<div>{}</div>
);
}
두 번째 이미지는 SubPath
를 사용한 경우입니다. 개별 경로를 통해 flatten
을 가져온 경우입니다.
첫 번째 케이스와 다르게 사용하는 @modern-kit/utils
의 flatten
만 불러오는 것을 확인 할 수 있습니다.
이러한 차이는 개발 서버 성능에 영향을 미칠 수 있습니다.