Fork me on GitHub

2017-02-05 JS: AVA 0.18.0, Mithril 1.0, ES modules과 webpack의 모듈

Translator: U-Yeong Ju Edit on GitHub See Revisions

JSer.info #317 - 테스팅 프레임워크 AVA 0.18.0이 릴리즈됐습니다.

Node.js 0.10와 0.12의 지원을 종료하고 Snapshot testing(JSX)용 t.snapshot이 추가됐습니다.

지금까지는 power-assert를 사용(동봉)하여 테스트가 실패했을때의 출력을 비쥬얼라이즈를 했습니다만, 0.18.0부터는 Magic assert를 추가하여 Mocha나 Jest 처럼 같지 않은 부분을 actualexpect로 나눠 diff 출력이 가능 하도록 변경 됐습니다(Jest의 pretty-format을 fork한 것을 이용하고 있습니다).

Magic assert


JavaScript 프레임워크 Mithril 1.0이 릴리즈됐습니다.

위 마이그레이션 가이드 겸 릴리트 노트를 통해 다양한 변경이 이뤄졌음을 확인할 수 있습니다.

라이프 사이클 메서드 추가, 컴포넌트를 인자로 전달 시 필수적으로 m()으로 wrap 하도록, m.sync 삭제, 동기적 redraw 삭제 등이 이뤄졌습니다.

시그니처가 변경된 부분도 많기 때문에 위 마이그레이션 가이드를 살펴보는게 좋을 것 같습니다.
또, 마이그레이션 도구도 공개돼 있기 때문에 함께 이용하면 될 것 같습니다.


Native ECMAScript modules: the new features and differences from Webpack modules에는 ECMAScript modules와 webpack이 지원하는 모듈 시스템의 차이점에 관해 작성돼 있습니다.

MSEdge나 WebKit 등 실제 ECMAScript modules가 동작하는 환경도 슬슬 나오고 있고, 모듈에 의한 <script> 요소의 속성과 관련된 부분도 정리돼 있기 때문에 한번 읽어보기 좋은 글인 것 같습니다.


공지사항

JSer.info 6주년 기념 이벤트(일본어)에서도 이야기했던 jser/report의 1회 째를 공개했습니다.

JSer 레포트는 방향성이나 테마 그리고 비용을 줄이는 방법 등 해결해야할 과제가 많습니다.
이와 관련된 의견이 있다면 자유롭게 해쉬태그 #jserinfo 혹은 @jser_info에 멘션을 주시거나 jser/report에 이슈를 작성해주세요.


헤드라인


Node v7.5.0 (Current) | Node.js

nodejs.org/en/blog/release/v7.5.0/

node.js ReleaseNote


Node v7.5.0이 릴리즈됐습니다.
npm 업데이트, NODE_NO_WARNINGS의 환경변수 (--no-warnings과 같은)를 추가하는 등 다양한 변경 사항이 있습니다.


Release 0.18.0 · avajs/ava

github.com/avajs/ava/releases/tag/v0.18.0

JavaScript testing


AVA 0.18.0이 릴리즈됐습니다.
Node.js 0.10과 0.12의 지원 종류하고 Snapshot testing(JSX)과 Magic assert를 추가하는 등 다양한 변경 사항이 있습니다.


Announcing TypeScript 2.2 RC | TypeScript

blogs.msdn.microsoft.com/typescript/2017/02/02/announcing-typescript-2-2-rc/

TypeScript ReleaseNote


TypeScript 2.2 RC가 릴리즈됐습니다.
기본형(primitive) 이 외의 타입을 표현하는 object type 추가, class expresson을 사용한 mixin 지원, JSX의 react-native 지원하는 등 다양한 변경 사항이 있습니다.


Chromium Blog: Chrome 57 Beta: CSS Grid Layout, Improved Add to Home screen, Media Session API

blog.chromium.org/2017/02/chrome-57-beta-css-grid-layout-improved.html

Chrome ReleaseNote


Chrome 57 Beta가 릴리즈됐습니다.
CSS Grid, _Media Session API, String#padStart를 지원합니다.
반복되는 out-of-view 애니메이션에 setTimeout() 사용하면 setTimeout()이 제한(throttle)되도록 변경됐으며 XSS Auditor(필터)가 기본적으로 mode block이 되도록 변경됐습니다.


mithril.js/change-log.md at rewrite · lhorie/mithril.js

github.com/lhorie/mithril.js/blob/rewrite/docs/change-log.md

JavaScript DOM ReleaseNote library


Mithril 1.0이 릴리즈됐습니다.
라이플 사이클 메서드 추가됐고 컴포넌트를 인자로 전달 시 필수적으로 m()으로 wrap 하도록 변경됐습니다. 또, m.sync와 동기적 redraw를 삭제하는 등 많은 부분이 크게 변경 됐습니다.


아티클


Native ECMAScript modules: the new features and differences from Webpack modules

blog.hospodarets.com/native-ecmascript-modules-new-features

ECMAScript module webpack


webpack 등의 모듈과 네이티브 ES module의 차이점에 관해 정리 돼 있는 글입니다. 모듈 패스, CORS, script 요소의 속성, 에러 판정, ES module의 동작, feature detection 방법, fallback, script 요소의 type을 취하는 방법 등 다양하고 자세히 해당 주제를 다루고 있습니다.


A Beginners Guide to Webpack 2 and Module Bundling

www.sitepoint.com/beginners-guide-to-webpack-2-and-module-bundling/

webpack tutorial


webpack의 기본적인 사용 방법에 관해 소개 돼 있습니다.
module의 취급 방법, loader, plugin, 코드 분할, dev server, Hot reloading에 관해 정리 돼 있습니다.


Next on Next.js

jsmantra.com/next-on-next-js-1a134505f346

JavaScript React 서버


React를 사용한 프레임워크인 Next.js 2β에 관해 작성돼 있습니다.
라우팅, 코드 분할, webpack 2 지원, webpack이나 babel의 설정을 커스텀하는 방법 등 Next.js 2β의 변경점에 관해 정리돼 있습니다.


CSS Grid – Table layout is back. Be there and be square.  |  Web  |  Google Developers

developers.google.com/web/updates/2017/01/css-grid

CSS


CSS Grid의 개요가 소개 돼 있습니다.


How to set up E2E browser testing for your GitHub project

hackernoon.com/how-to-set-up-e2e-browser-testing-for-your-github-project-89c24e15a84

E2E testing tutorial article


TestCafe를 사용한 E2E 테스트 설정 및 활용 방법에 관해 소개 돼 있습니다.
PageObject 패턴, Travis CI나 Sauce Labs와의 연동 방법이 작성돼 있습니다.


API Deprecations and Removals in Chrome 57  |  Web  |  Google Developers

developers.google.com/web/updates/2017/02/chrome-57-deprecations

Chrome article


Chrome 57에서 비권장되거나 삭제되는 API에 관해 작성돼 있습니다. webkitCancleAnimationFrame 처럼 Vendor-prefix가 붙은 cancelAnimationFrame, IndexedDB, AudioContext 관련 API가 삭제되며 BluetoothDevice.uuids, <keygen>, OfflineAudioContext 등도 함께 삭제 됩니다.


es6-feature-detection.js

gist.github.com/DaBs/89ccc2ffd1d435efdacff05248514f38

JavaScript ECMAScript library


실행 환경이 ES2015 대부분의 기능(Classes, let, const, Unicode 등)을 지원하고 있는지를 판정하는 단, 몇 줄만으로 작성한 스니펫 코드입니다.


슬라이드, 영상


BlinkOn 7 Information - Google 문서

docs.google.com/document/d/1jlpsfv0kXCveOEX5l75aATgRXbcAvwyse4Tn6jVprWs/edit#

이벤트 V8 Chrome google


Google의 BlinkOn7 이벤트 관련 정보가 정리돼 있습니다.
각 세션 별 슬라이드가 공개 돼 있습니다.


How to Use npm Scripts as Your Build Tool - Course by @elijahmanor @eggheadio

egghead.io/courses/how-to-use-npm-scripts-as-your-build-tool

npm video tutorial


npm scripts를 사용해 빌드 환경을 구성하는 방법을 소개하는 스크린캐스트 입니다.


JSMpeg – Decode it like it's 1999

jsmpeg.com/

JavaScript video library


MPEG1/MP2를 자바스크립트 레벨에서 디코딩할 수 있는 라이브러리입니다.
WebSockets를 사용한 영상 스트림 전송 목적으로 개발됐습니다.


사이트, 서비스, 문서


Introduction · GitBook(일본어)

vuex.vuejs.org/ja/

Vue library document 번역


Vuex의 문서를 일본어로 번역한 사이트입니다.


Web Platform Tests Dashboard

wptdashboard.appspot.com/

browser testing DOM WebPlatformAPI


w3c/web-platform-tests: Test Suites for Web Platform specifications—including WHATWG, W3C and others를 브라우저 별로 실행한 결과가 정리돼 있는 페이지입니다.


WebVR Rocks • Your guide to Virtual Reality in the browser.

webvr.rocks/

web VR


브라우저 별 WebVR 지원 현황을 정리한 사이트입니다.


소프트웨어, 도구, 라이브러리


oliver-moran/jimp: An image processing library written entirely in JavaScript for Node, with zero external or native dependencies.

github.com/oliver-moran/jimp

JavaScript library


의존 라이브러리 없는 이미지 처리 라이브러리입니다.
리사이즈나 회전, 회색 처리 등 이미지 관련 가공을 할 수 있습니다.


egoist/sao: Futuristic scaffolding tool.

github.com/egoist/sao

github Tools console


Git 저장소나 npm 패키지 등을 기반으로 프로젝트를 생성할 수 있는 scaffolding 도구 입니다.


ide/mux: Creates a promise that waits for the promises in nested data structures and resolves to data structures of the same form. It recursively traverses the input data structure and multiplexes its promises.

github.com/ide/mux

JavaScript library Promises


Array, Map, Set 등이 갖는 프로퍼티의 Promise를 해결하고, 그 결과를 똑같은 구조로 반환해 주는 라이브러리입니다.


도서


Announcing "Learning Aurelia" from Packt Publishing

blog.aurelia.io/2017/02/01/announcing-learning-aurelia-from-packt-publishing/

JavaScript library book


Aurelia에 관해 소개하는 서적입니다.


Exploring ES2016 and ES2017

exploringjs.com/es2016-es2017.html

ECMAScript JavaScript book


ExploringJS의 속편으로 ECMAScript 2016과 2017에 관해 소개하는 서적입니다.


Pull Request to this article
JSer.info Slackに参加する