@mornya/builder

The project of module compiler with using Webpack and TypeScript

Usage no npm install needed!

<script type="module">
  import mornyaBuilder from 'https://cdn.skypack.dev/@mornya/builder';
</script>

README

Builder

npm node types downloads license

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 파일 참조.