Fork me on GitHub

2017-06-05 JS: Node.js 8.0.0, npm canary, Mocha to Jest

Translator: U-Yeong Ju Edit on GitHub See Revisions

JSer.info #334 - Node.js 8.0.0이 릴리즈됐습니다.

Node.js 8은 2017년 10월에 LTS가 될 예정입니다.

Node.js 8.0.0에는 npm v5.0.0V8 version 5.8이 탑재돼 있습니다.

또, Node.js API (N-API)라는 네이티브 에드온에 대한 레이어가 시험적으로 추가됐습니다.
이는, VM(V8이나 CharkraCore)에 의존하지 않는 ABI(Application Binary Interface)를 제공하는 것이 목적으로 자세한 내용은 아래 문서에 소개돼 있으니 참고하시길 바랍니다.

async_hooks과 WHATWG URL를 정식으로 지원하고 기본적으로 zero-filled된 인스턴스가 반환되도록 Buffer 생성자의 동작이 변경됐습니다. 그리고 util.promisify가 추가되는 등 다양한 변경 사항이 있습니다.
util.promisifyfs 등의 전통적인 콜백 함수 인터페이스를 Promise로 다룰 수 있도록 변경 해주는 메서드입니다. 이와 관련된 자세한 내용은 아래 문서를 참고하시길 바랍니다.

디버그 관련 변경사항으로 --debug를 사용한 디버깅은 비권장이 됐고 --inspect, --inspect-brk 등의 옵션을 이용한 디버깅이 권장합니다.

또, Node.js가 생성하는 Error에 독자의 에러 코드가 부가며 AssertionError를 취급하는 방식이 조금 바뀌었습니다.

// assert 모듈에 의한 Error
AssertionError [ERR_ASSERTION]: false == true

의해서 AssertionError 등에 특별한(부가적인) 처리를 하는 power-assert 등이 영향을 받게 됐습니다(이에 따른 대응이 필요함).


Node.js 8.0.0에 탑제돼 있는 것은 npm 5.0.0 이지만 몇 가지 문제와 성능을 개선한 npm 5.0.2가 릴리즈됐습니다.

또, npm의 canary 버전(조기 테스트 버전)인 npmc가 공개됐습니다.

npm i -g npmc

npmc


Into the Great Unknown — Migrating from Mocha to Jest에는 Mocha에서 Jest 테스트 프레임워크로 변경하면서 겪은 일이 매끄럽게 소개돼 있습니다.

jest-codemods와 같은 마이그레이션 도구를 사용해서도 기계적으로 변경하지 못했던 부분을 어떻게 회피했는지 등에 관해 작성돼 있습니다.


헤드라인


Node v8.0.0 (Current) | Node.js

nodejs.org/en/blog/release/v8.0.0/

node.js ReleaseNote

Node.js 8.0.0이 릴리즈됐습니다.
npm 5.0.0, V8 5.8, N-API(Node.js API), async_hooks, WHATWG URL을 정식으로 지원합니다. 기본적으로 zero-filled된 인스턴스가 반환되도록 Buffer 생성자의 동작이 변경됐고 util.promisify가 추가되며 Node.js가 생성하는 Error에 code 속성이 붙도록 변경됐습니다. 또, --debug가 폐지되고 --inspect로 디버거와 연계할 수 있도록 됐습니다.


npm/CHANGELOG.md at v5.0.1 · npm/npm

github.com/npm/npm/blob/v5.0.1/CHANGELOG.md

npm ReleaseNote

npm 5.0.1이 릴리즈됐습니다.
5.0.0의 버그가 주로 수정됐습니다. 또, 불필요한 assertion을 삭제하고 설치 속도를 개선하는 등 다양한 변경 사항이 있습니다.


Release Notes for Safari Technology Preview 31 | WebKit

webkit.org/blog/7622/release-notes-for-safari-technology-preview-31/

safari ReleaseNote

Safari Technology Preview Release 31이 릴리즈됐습니다.
preload에서 astype 속성을 지원하며 Access-Control-Allow-Origin의 에러 메시지가 개선됐습니다.


N-API: Next generation Node.js APIs for native modules

medium.com/@nodejs/n-api-next-generation-node-js-apis-for-native-modules-169af5235b06

C++ ChakraCore V8 node.js

Node.js 8.0.0에서 도입된 N-API에 관해 작성돼 있습니다. 지금까지 NAN 등을 이용해 네이티브 모듈을 작성할 수 있었지만 이는 V8을 의존하고 있기 때문에 API / ABI stability에 문제가 있었습니다. 따라서 N-API에서는 ABI-stable한 중간 레이어를 제공하여 문제를 회피합니다. 이에 맞춰 Node-ChacraCore 등에서도 호환 API를 준비하고 있습니다.


Release v5.0.2 · npm/npm

github.com/npm/npm/releases/tag/v5.0.2

ReleaseNote npm

npm 5.0.2가 릴리즈됐습니다. npm i -g npmc으로 npm의 canary 버전을 설치할 수 있도록 변경 됐고 설치 출력 결과가 개선됐습니다.


Announcing Meteor 1.5 – Meteor Blog

blog.meteor.com/announcing-meteor-1-5-b82be66571bb

JavaScript library ree

Meteor 1.5이 릴리즈됐습니다.
Code splitting, Dynamic import를 지원하고 bundle 분석 도구가 추가됐습니다.


아티클


Introduction to State Management in Angular v2+ – OlricDigital – Medium

medium.com/olricdigital/introduction-to-state-management-in-angular-v2-ef6f5144bade

AngularJS

Angular에서 @ngrx/store를 사용한 상태 관리에 관해 소개돼 있습니다.


HTTP/2 push is tougher than I thought - JakeArchibald.com

jakearchibald.com/2017/h2-push-tougher-than-i-thought/

HTTP2 browser

HTTP/2 Server Push에 관련한 브라우저 별 동작에 대해 요약/정리 돼 있습니다.


Whats new for streams in Node 8 – Calvin Metcalf – Medium

medium.com/@CWMma/whats-new-for-streams-in-node-8-736d431083df

node.js

Node.js 8.0.0의 Stream에 추가된 destroy가 소개돼 있습니다.


Redux vs MobX: Which Is Best for Your Project? — SitePoint

www.sitepoint.com/redux-vs-mobx-which-is-best/

JavaScript library opinion redux

Redux와 MobX의 비교 글입니다. 각각의 특징이나 작성 방법의 차이점과 소소한 견해가 작성돼 있습니다.


Into the Great Unknown — Migrating from Mocha to Jest

ebaytech.berlin/into-the-great-unknown-migrating-from-mocha-to-jest-3baced083c7e

JavaScript testing article

Mocha에서 Jest로 테스트 환경을 변경하면서 겪은 이야기가 작성돼 있습니다.
codemod를 사용한 마이그레이션 방법과 js 이 외의 파일(scss)을 불러올 때 hook 처리 방법 그리고 ESLint 설정 등을 소개하고 복잡한 테스트나 chai 확장을 사용하고 있는 경우에 기계적으로 변환할 수 없는 경우에 대해서 이야기합니다.


Announcing Storybook 3.0 – Storybook – Medium

medium.com/storybookjs/announcing-storybook-3-0-329748b8f4cd

React library document testing ReleaseNote

React의 컴포넌트 개발 환경 도구인 Storybook 3.0이 릴리즈됐습니다.
개발 주체가 Kadira에서 커뮤니티로 이동했고 webpack2를 대응했습니다. 또, 스탭샷 테스트를 할 수 있는 storyshot을 지원합니다.


슬라이드, 영상


Rails 엔지니어가 React를 시작해 SSR와 Redux와 TypeScript를 도입하기까지 | bitjourney Kibela(일본어)

bitjourney.kibe.la/shared/entries/5c77844d-9856-4f1c-b689-44b1ee3d450a

React TypeScript rails slide

Rails 환경에 React + Redux와 서버 사이드 렌더링을 도입하기 까지의 과정을 이야기합니다. 추후 TypeScript를 도입한 과정도 소개돼 있습니다.


사이트, 서비스, 문서


WebAssembly and Friends Roadmap

wasmdash.appspot.com/

Chrome WebAssembly

Chrome의 wasm 관련한 로드맵이 공개돼 있습니다.


MIL WebDNN

mil-tokyo.github.io/webdnn/

WebAssembly 기계학습

WebGPU, WebAssembly, JavaScript의 Fallback을 이용해 구현한 DNN(Deep neural network)의 실행 환경이 소개돼 있습니다.
브라우저 상에서 고속으로 범용 연산을 처리하는 것이 목적.


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


picodom/picodom: 1kb Virtual DOM builder and patch algorithm.

github.com/picodom/picodom

VirtualDOM JavaScript library

작은 사이즈의 Virtual DOM 구현 라이브러리입니다.


Birdview

achrafkassioui.com/birdview/

JavaScript library

사이트 전체를 관망할 수 있도록 전환할 수 있는 라이브러리입니다.


도서


O'Reilly Japan - 서버리스 싱글 페이지 애플리케이션

www.oreilly.co.jp/books/9784873118062/

serverless JavaScript book

2017년 06월 23일 발매 예정인 aws lambda 등을 사용한 서버리스 SPA를 주제로 한 도서입니다.


기초부터 알아가는 Elm | 토리이 요우스케 | 책 | 통신판매 | Amazon

www.amazon.co.jp/%E5%9F%BA%E7%A4%8E%E3%81%8B%E3%82%89%E3%82%8F%E3%81%8B%E3%82%8B-Elm-%E9%B3%A5%E5%B1%85-%E9%99%BD%E4%BB%8B/dp/4863542224

program book

2017년 7월 14일 발매 예정인 Elm을 주제로 한 도서입니다.


Get Programming with JavaScript Next: New features of ECMAScript 2015, 2016, and beyond: J. D. Isaacks: 9781617294204: Amazon.com: Books

www.amazon.com/Get-Programming-JavaScript-Next-ECMAScript/dp/1617294209

JavaScript book

2017년 12월 30일 발매 예정인 ES2015 이후에 대해서 다루는 도서입니다.


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