README
Builder
Copyright 2022. mornya. All rights reserved.
This project has been created by Vessel CLI. For a simple and quick reference about it, click here.
About
Webpack (v5) 기반 빌드를 위한 구성이 제공되는 패키지.
⚠️
Node.js
CLI 및 백엔드 프로젝트를 위한 빌드 타입은 제거되었습니다. Node Vessel 패키지를 이용하여 빌드되도록 조치되었습니다.
Installation
해당 라이브러리를 사용 할 프로젝트에서는 아래와 같이 의존성 모듈로 설치한다.
$ npm install --save @mornya/builder
or
$ yarn add @mornya/builder
Usage
웹팩을 이용한 빌드
를 위해 아래와 같은 예시를 참고한다.
import path from 'path';
import { WebpackCompiler, Paths } from '@mornya/builder';
const compilerConfig: WebpackCompiler.CompilerConfig = {
buildEnv: 'development', // or 'production' (default)
// webpack info 표시여부 (dev-server 기동시에는 경고/오류 외에는 출력하지 않음)
isShowBuildInfo: false, // or true
};
// 생성된 앱에서의 경로
const appDirectory = process.cwd();
const resolveOwn = (relativePath: string) => path.resolve(__dirname, '..', relativePath); // 현재 파일 기준 루트 경로
const resolveApp = (relativePath: string) => path.resolve(appDirectory, relativePath); // 생성되는 앱의 루트 경로
const ownPath = resolveOwn('.');
const appPath = resolveApp('.');
const paths: Paths = {
isLocal: ownPath === appPath,
ownPath: path.resolve(ownPath),
ownPackageJson: resolveOwn('package.json'),
ownTemplate: resolveOwn('template'),
ownNodeModules: resolveOwn('node_modules'),
appPath: path.resolve(appPath),
appBuild: resolveApp('dist'),
appCached: resolveApp('node_modules/.cache'),
appPackageJson: resolveApp('package.json'),
appPublic: resolveApp('public'),
appSrc: resolveApp('src'),
appTypes: resolveApp('types'),
appAssets: resolveApp('src/assets'),
appNodeModules: resolveApp('node_modules'),
appDotEnv: resolveApp('.env'),
};
function bundlingProgress (): void {
console.log('Start BUILD...');
try {
const { compiler } = WebpackCompiler.initialize('build-normal', compilerConfig, paths);
compiler.run((err, stats) => {
if (err) {
console.error(err.message);
console.log(err);
process.exit(1);
}
console.log(stats);
process.exit(0);
});
} catch (e) {
console.error(e);
}
}
Change Log
프로젝트 변경사항은 CHANGELOG.md 파일 참조.
License
프로젝트 라이센스는 LICENSE 파일 참조.