@mornya/node-vessel

5.5.0 • Public • Published

Node Vessel

npm node types downloads license

Copyright 2001~present. mornya. All rights reserved.

About

Node.js Serverside 앱 개발을 위한 스케폴딩 생성, 미리 구성된 개발환경으로 빠른 애플리케이션 개발/배포에 집중할 수 있도록 TypeScript 기반 앱을 생성해 준다.

Features

  • TypeScript and ES6+ is supported by default WITHOUT using Babel.
  • You can launch the application right away with pre-configured code templates and preferences.
  • Code developed with Node.js is bundled via Webpack.
  • Lint and test all of your codes with Lintest CLI.

Installation

생성된 프로젝트에서 개발을 위해 필요한 node-vessel CLI는 기본적으로 전역 모듈로 설치되어 있어야 한다.
아래와 같이 커맨드 라인에서 실행 가능하도록 한다.

npm 대신 yarn 사용시, 프로젝트 루트 경로에 package-lock.json 파일이 존재하면 제거하고 yarn.lock 파일만 참조되도록 한다.

$ npm install -g @mornya/node-vessel
or
$ yarn global add @mornya/node-vessel

린트와 테스트 수행 관련된 모듈은 @lintest/cli 모듈을 사용하므로 따로 전역으로 설치한다.

$ npm install -g @lintest/cli
or
$ yarn global add @lintest/cli

Execution

아래와 같이 커맨드 라인에서 CLI를 실행하며, 출력되는 메시지로 사용 가능한 커맨드를 확인 할 수 있다.

문서 하단 "Available commands" 참조.

$ node-vessel

Create a new project

신규 프로젝트 생성은 터미널 등의 환경에서 아래와 같이 node-vessel init 커맨드를 실행하여 기본적인 템플릿을 바탕으로 프로젝트 개발 환경을 구축한다.

실행시 src 하위 경로에 기본적으로 TypeScript 기반 템플릿 소스코드들이 생성되며, 파일 확장자(*.js)로 변경시 ECMAScript/JavaScript를 이용한 개발이 가능하다.

$ mkdir <project-name>
$ cd <project-name>
$ node-vessel init

혹은 npm init 등을 실행하여 package.json 파일 등이 존재할 때, node-vessel init 커맨드를 실행해도 무방하다. 이 때 기존 package.json 파일의 내용과 Node Vessel에서 템플릿으로 설정한 내용이 병합되어, 각종 설정 들이 추가/변경 된다.

$ npm init
$ git init
$ node-vessel init

아래와 같이 프로젝트 이름 및 설명을 설정하여 초기화 혹은 기존 데이터와 병합이 가능하다.

package.json의 name과 description이 입력된 값으로 변경되며, 신규 생성시에는 README.md 등 템플릿에도 적용된다.

$ node-vessel init "@myorg/sample"
or
$ node-vessel init "@myorg/new-awesome-libs" "새로운 프로젝트"

Run project

프로젝트 내 개발된 애플리케이션을 로컬환경에서 실행하기 위해 디펜던시로 설치된 nodemon을 구동한다.

$ npm start
or
$ npm run [dev|serve]

Build project

프로젝트 내 ECMAScript 혹은 TypeScript 등으로 작성된 소스파일들은 Webpack을 통해 번들링되어 dist 경로(변경 불가)에 index.js 파일이 생성되며, 해당 파일을 기점으로 서비스 하면 된다.

# (🤘 = dev | prod)
$ npm run bundle:🤘

혹은 각 소스파일들을 컴파일만 하여 dist 경로에 각 *.js 파일들로 생성이 되도록 하고, 해당 경로의 엔트리포인트가 되는 파일을 기점으로 서비스 하려면 아래와 같이 하면 된다.

# (🤘 = dev | prod)
$ npm run build:🤘

Available commands

Node Vessel에서 사용 가능한 커맨드는 아래와 같다.

Initialization

생성된 프로젝트 초기에 실행하도록 한다. 현재 경로에 미리 구성된 템플릿 파일 복제 과정을 수행하며, 만약 수행시 package.json 파일이 존재하는 경우 각 설정들을 병합하게 된다.

package.json 파일 이외에 다른 템플릿 파일과 동일한 파일이 현재 경로 및 하위에 존재할 경우에는 덮어쓰기 되니 주의.

$ node-vessel init

Build

ECMAScript 혹은 TypeScript로 개발된 모듈에 대한 빌드를 실행한다.
TypeScript 컴파일러(tsc)를 통해 트랜스파일 된 *.js 파일들이 추출되며, 해당 파일들은 dist 경로에 생성된다.

$ node-vessel build

Bundle

Build 커맨드와 마찬가지로 개발된 모듈에 대한 빌드를 실행한다.
Webpack 컴파일러를 통해 번들링 된 index.js 파일이 추출되며, 해당 파일들은 dist 경로에 생성된다.

$ node-vessel bundle

Check code

TypeScript 컴파일러(tsc)를 이용하여 전체 코드들에 대해 타입 검증을 실행한다.

$ react-vessel check

Clean build

dist 경로에 생성된 산출물 및 캐시 디렉토리 내 모든 파일을 제거한다.

해당 명령 실행시에만 캐시 디렉토리가 제거 대상에 포함된다.

$ node-vessel clean

Change Log

프로젝트 변경사항은 CHANGELOG.md 파일 참조.

License

프로젝트 라이센스는 LICENSE 참조.

Package Sidebar

Install

npm i @mornya/node-vessel

Weekly Downloads

3

Version

5.5.0

License

ISC

Unpacked Size

219 kB

Total Files

74

Last publish

Collaborators

  • mornya