biodic-webpack-starter

0.9.1 • Public • Published

biodic-webpack-starter

biodic-webpack-starter는 gulp 명령어를 이용하여, 개발 환경에서 webpack dev server를 실행하고, gulp build 명령어를 이용하여 배포하기 위한 초기 셋팅입니다. 빠르고 편리한 개발을 위해, 개발 환경에서는 webpack-dev-server 실행과 동시에 browser-sync를 통해 소스파일이 변경되면, 변경된 항목만 bundle.js 또는 통합 css로 패키징하고 웹브라우저를 자동으로 새로고침합니다. shell상에서 webpack-dev-server 명령어가 아닌 gulp 명령어만을 통해 webpack-dev-server 및 browser-sync가 실행되므로 static 파일들에 대한 자동화된 빌드환경을 구축할 수 있습니다.

Install

GitHub

$ git clone https://github.com/biodic/biodic-webpack-starter
$ cd biodic-webpack-starter
$ npm install

npm

$ npm install biodic-webpack-starter
$ cp -a node_modules/biodic-webpack-starter/* ./; cp node_modules/biodic-webpack-starter/.* ./
$ npm install

Directory structure

project
│   .babelrc
│   README.md
│   package.json
│   gulpfile.babel.js
│   webpack.config.js   
│
└───src : webpack-dev-server publicPath로도 사용
│   │   webpack.js  : webpack entry file
│   │   index.html
│   │
│   └───images  : static images
│   │
│   └───modules : custom modules
│   │     *.js
│   │
│   └───scss
│          *.scss
│          │
│          └───images
│
└───dist : 배포시(gulp build) 생성됨
│   │   index.html
│   │
│   └───css
│   │     app.css : bootstrap/custom (s)css bundle
│   │     └───fonts : Glyphicons 웹폰트
│   │
│   └───images
│   │
│   └───js
│          bundle.js
│
└───node_modules

Usage

개발환경

  • webpack-dev-server와 browser-sync 실행
  • 소스파일 변경과 동시에 자동으로 번들링 및 웹브라우저 새로고침됩니다.
$ gulp

배포환경

  • 빌드후 dist 디렉토리에 번들링(패키징)된 파일과 Static(Webpack에서 패키징하지 않은 파일등)파일이 저장됩니다.
$ gulp build

gulp plugins

  • babel : ES6문법을 ES5형태로 변환 (babel-preset-es2015)

  • cli-clear : 터미널 화면을 지움

  • del : production 배포시(gulp build) 기존 배포 폴더내 하위 폴더와 파일을 초기화됨

  • webpack

  • webpack-dev-server

  • webpack-merge : 기본 webpack 빌드관련 환경설정 파일(webpack.config.js)을 기반으로, 개발환경(webpack-dev-server) 빌드시 개발환경과 관련된 환경설정을 merge

  • babel-loader

  • style-loader, css-loader, sass-loader, node-sass : webpack에서 scss를 css로 변환

  • file-loader, url-loader : css에 명시된 이미지 파일을 저장(emit) 또는 번들링(app.css)

  • image-webpack-loader : webpack에서 이미지를 저장 또는 번들링할때 minify

  • html-webpack-plugin : bundle.js 및 app.css(webpack.js에서 정의) 링크를 자동으로 삽입

  • extract-text-webpack-plugin : webpack에서 번들링시, css는 bundle.js에 패키징하지 않고, 별도의 app.css파일에 패키징하여 저장

  • optimize-css-assets-webpack-plugin : extract-text-webpack-plugin으로 css를 패키징한후 minify

  • gulp-clean-css : webpack으로 번들링 하지 않는 css의 minify

  • gulp-htmlmin : webpack으로 번들링 하지 않는 html파일의 minify

  • gulp-imagemin : webpack으로 번들링 하지 않는 이미지 파일의 minify

  • gulp-uglify : webpack으로 번들링 하지 않는 js파일의 minify

※ 설명이 필요하거나 중요한 플러그인만 기재했습니다.


기본 레이아웃에는 아래의 라이브러리가 적용되어있습니다.

Bootstrap 3.3.7

  • dropdown menu가 적용된 navigation
  • 로그인 Modal
  • 로그인폼 validation states with icon (success/error)
  • Webpack bundle.js에 패키징
  • Glyphicons 폰트는 패키징하지 않고, font 디렉토리에 저장(emitted)하도록 구성하였습니다.

jQuery 3.2.1

  • External CDN link : CDN 주소를 index.html에 삽입하고, webpack에서 bundle.js로 패키징하지 않게하면서 jQuery를 참조할 수 있도록 webpack의 externals에 정의하였습니다.
  • 한국에서 가장 속도가 빠른 ajax.googleapis.com를 link하였습니다.
  • https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js

Font Awesome 4.7.0

  • External CDN link : CDN 주소를 index.html에 삽입
  • 한국에서 가장 속도가 빠른cdn.jsdelivr.net를 link하였습니다.

toastr 2.1.2

  • 로그인폼 validation check 실패시 오류 메시지등

Comments

자유롭게 수정/배포하셔도 됩니다.
너무 많이 부족하고 모릅니다. 수정될 부분이나 효율적인 방안등이 있으시면 많이 가르쳐 주세요~

License

MIT license - http://www.opensource.org/licenses/mit-license.php

Package Sidebar

Install

npm i biodic-webpack-starter

Weekly Downloads

1

Version

0.9.1

License

MIT

Last publish

Collaborators

  • biodic