2.6.1 • Published 1 year ago

@mornya/builder v2.6.1

Weekly downloads
45
License
ISC
Repository
github
Last release
1 year ago

Builder

npm node types downloads license

Copyright 2001~present. 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) 기반 애플리케이션 빌드/분석을 위한 구성이 제공되는 패키지.

Features

Installation

해당 라이브러리를 사용 할 프로젝트에서는 아래와 같이 의존성 모듈로 설치한다.

$ npm install --save @mornya/builder
or
$ yarn add @mornya/builder

Usage

웹팩을 이용한 빌드를 위해 아래와 같은 예시를 참고한다.

import path from 'path';
import { WebpackCompiler } 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: WebpackCompiler.Paths = {
  // 로컬 개발 환경 여부
  isLocal: ownPath === appPath,
  // builder 패키지 내 경로 (own*)
  ownPath: path.resolve(ownPath),
  ownPackageJson: resolveOwn('package.json'),
  ownTemplate: resolveOwn('template'),
  ownNodeModules: resolveOwn('node_modules'),
  // 애플리케이션 내 경로 (app*)
  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'),
};

// LaunchType: build-normal | build-nodejs | dev-server | analyze-server | analyze-stats | analyze-html
const launchType: WebpackCompiler.LaunchType = 'build-normal';

function bundlingProgress (): void {
  console.log('Start build...');

  try {
    const { compiler } = WebpackCompiler.initialize(launchType, 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 파일 참조.