Fork me on GitHub

2019-01-29 JS: Node.js 11.8.0(Policy 기능), Nuxt.js 2.4.0(TS지원), Yarn v2 로드맵

Translator: U-Yeong Ju Edit on GitHub See Revisions

JSer.info #420 - Node.js의 개발 버전인 11.8.0을 릴리스했습니다.

전 버전인 11.7.0에 이어서 새로운 기능을 추가했습니다.

11.8.0에서 브라우저의 Subresource Integrity와 같은 Policies 기능을 시범적으로 추가했습니다.
Policeis 기능은 불러 올 자원(모듈)의 해시 값을 갖는 정책 파일을 작성해 실행 시 정책 파일과 조합하여 파일이 의도하지않게 변경되진 않았는지 검사합니다.

Policies에서 파일의 해시 값을 정의하는 policy.json 작성 방법과 정책 파일을 수정할 수 없도록 운영하는 방법을 소개하고 있으니 참고하시길 바랍니다.

또, 11.8.0 에서는 지금까지 외부 모듈로 개발하던 node-report를 코어에 도입했습니다.
현재는 플래그를 붙여 사용할 수 있으며 에러가 발생했을 때 자세한 정보를 JSON으로 살펴볼 수 있습니다.


Vue.js를 사용한 프레임워크 Nuxt.js 2.4.0을 릴리스했습니다.

2.4부터 버전 릴리스 방침이 명확하게 정의됐습니다.

  • minor는 4주 주기
  • major는 6개월 주기
  • major 버전을 EOL하는 시점은 1년 2주 후

nuxt.js/RELEASE_PLAN.md at dev · nuxt/nuxt.js

2.4에서는 nuxt-ts를 제공하여 타입스크립트를 공식 지원합니다.

또, store/를 HMR에 대응하고 <nuxt-link>가 viewport 내의 prefetch를 기본적으로 실행하도록 변경했으며 bin 스크립트 대응, SSR bundle 파일의 크기 개선이 이뤄졌습니다.


Yarn's Future - v2 and beyond · Issue #6953 · yarnpkg/yarn를 통해 Yarn v2에서 이뤄질 변경사항과 로드맵을 공개했습니다.

lock 파일을 YAML 서브셋 포맷으로 변경하고 PnP를 기본적으로 활성화합니다. 또, 기반 코드를 타입스크립트로 재작성 했으며 플러그인을 지원하고 워스크페이스 관련 기능을 개선합니다.

2월 즈음 v2를 새로운 저장소를 통해 공개 할 예정입니다.


헤드라인


Announcing TypeScript 3.3 RC | TypeScript

blogs.msdn.microsoft.com/typescript/2019/01/23/announcing-typescript-3-3-rc/

TypeScript ReleaseNote

TypeScript 3.3 RC를 릴리스했습니다.
함수 호출에서의 Union Types 행위 개선했으며 --build --watch 시 인크리멘탈 빌드 시스템을 활용해 빌드 시간을 최적화했습니다.


GitLab NPM Registry | GitLab

docs.gitlab.com/ee/user/project/packages/npm_registry.html

npm webservice news

GitLab Premium에서 npm registry를 지원합니다.


Release v4.0.0 · karma-runner/karma

github.com/karma-runner/karma/releases/tag/v4.0.0

node.js testing ReleaseNote

Karma v4.0.0을 릴리스했습니다.
테스트 코드에서 네이티브 async/await를 사용할 수 있도록 Node 6 지원을 종료했습니다.


Release v1.0.0 · redux-saga/redux-saga

github.com/redux-saga/redux-saga/releases/tag/v1.0.0

redux library ReleaseNote

redux-saga v1.0.0을 릴리스했습니다.
비호환적 변경사항으로 비권장 API를 삭제했고 API의 기본값과 옵션을 변경했습니다.
또, babel-plugin-redux-saga에서 출력하는 스택 트레이스를 개선했으며 부적절한 사용법에 대한 경고를 출력하도록 수정했습니다.


Release Notes for Safari Technology Preview 74 | WebKit

webkit.org/blog/8566/release-notes-for-safari-technology-preview-74/

safari ReleaseNote

Safari Technology Preview 74를 릴리스했습니다.
Fetch API의 요청을 취소할 수 있는 AbortController를 지원하며 Visual Viewport API를 활성화했습니다. 또, U2F HID Authentication을 지원합니다.


Yarn's Future - v2 and beyond · Issue #6953 · yarnpkg/yarn

github.com/yarnpkg/yarn/issues/6953

yarn issue news

Yarn 2.0 로드맵을 공개했습니다.
lock 파일 포맷 변경, PnP 기본 활성화, 타입스크립트로 재작성, 플러그인을 지원, 워크스페이스 관련 기능 개선, yarn constraints 추가 등이 이뤄집니다.


Node v11.8.0 (Current) | Node.js

nodejs.org/en/blog/release/v11.8.0/

node.js ReleaseNote

Node.js 11.8.0을 릴리스했습니다.
Subresource Integrity와 같은 Policy 기능을 시범적으로 지원합니다. node-report 모듈을 코어에 도입 process.report를 실험적으로 구현했습니다.


Jest 24: 💅 Refreshing, Polished, TypeScript-friendly · Jest

jestjs.io/blog/2019/01/25/jest-24-refreshing-polished-typescript-friendly

JavaScript testing ReleaseNote

Jest 24를 릴리스했습니다.
@babel/preset-typescript를 사용한 타입스크립트 지원, test.todo 추가, 에러 출력 방식 개선 등이 이뤄졌습니다.


Introducing Ionic 4: Ionic for Everyone | The Ionic Blog

blog.ionicframework.com/introducing-ionic-4-ionic-for-everyone/

Angular Vue React library ReleaseNote

Ionic 4를 릴리스했습니다.
Angular 이 외의 프레임워크로 React와 Vue를 지원합니다.


Release 1.2.0 · avajs/ava

github.com/avajs/ava/releases/tag/v1.2.0

JavaScript testing ReleaseNote

AVA 1.2.0을 릴리스했습니다.
테스트 케이스 별로 Timeout를 설정할 수 있도록 변경했습니다.


Release v2.4.0 · nuxt/nuxt.js

github.com/nuxt/nuxt.js/releases/tag/v2.4.0

Vue library ReleaseNote node.js

Nuxt.js 2.4.0을 릴리스했습니다.
minor, major, EOL 등의 릴리스 방침을 결정했습니다.
nuxt-ts를 이용한 타입스크립트 지원, <nuxt-link>가 viewport 내의 prefetch를 기본적으로 실행, bin 스크립트 대응 등이 이뤄졌습니다.


github.com/webpack/webpack/issues/8656

webpack npm issue

webpack 4.29.0 + npm 환경에서 import()가 실패하는 문제에 대한 이슈입니다.
npm이 acorn + acorn-dynamic-import의 peerDependency 관계를 무시하고 hoist 하는 버그 때문에 import()가 실패합니다. yarn에서는 발생하지 않는 문제이며 현재 npm에 Pull Request가 등록된 상태입니다.


아티클


What's New In DevTools (Chrome 73)  |  Web  |  Google Developers

developers.google.com/web/updates/2019/01/devtools

Chrome debug article

Chrome 73 DevTools의 변경 사항을 소개합니다.
Logpoints 추가 지원하고 코드 커버리지를 JSON으로 출력 가능하도록 변경했습니다. 그리고 콘솔 패널에서 키보드 네비게이션 지원하며 Geolocation을 설정할 수 있도록 변경했습니다.
또, WebSockets의 "Frames"을 "Messages"로 이름 변경 했습니다.


lerna의 monorepo 환경에서의 릴리스 플로우(Fixed/Independent) | Web Scratch(일본어)

efcl.info/2019/01/26/monorepo-release-flow/

JavaScript monorepo article

lerna를 사용한 monorepo 환경에서의 패키지 릴리스 흐름 관해 이야기합니다.
lerna의 mode(Fixed/Independent)의 다른점, monorepo에서의 publish 까지의 흐름, Yarn Workspaces 활용 방법을 설명합니다.


사이트, 서비스, 문서


ericclemmons/polydev: Faster, route-centric development for Node.js apps with built-in Hot Module Replacement.

github.com/ericclemmons/polydev

node.js library Development yarn

Next.js와 같은 디렉터리와 라우팅 구조를 갖는 Node.js 프레임워크 입니다.
요청이 올 때까지 필요없는 부분은 읽지 않으며 HMR를 지원해 파일의 변경을 곧바로 반영하는 등 서버 운영과 개발 편의성을 염두에 두고 개발했습니다.


nuxt.js/RELEASE_PLAN.md at dev · nuxt/nuxt.js

github.com/nuxt/nuxt.js/blob/dev/RELEASE_PLAN.md

Vue library document

Nuxt.js의 릴리스 계획에 대해 이야기합니다.
minor는 4주 주기, major는 6개월 주기, 각 major은 1년 2주 동안 보안 및 버그 수정이 이뤄지며 이후 EOL 됩니다.


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


LiquidPlayer/LiquidCore: Node.js virtual machine for Android and iOS

github.com/LiquidPlayer/LiquidCore

node.js ios Android library

Android와 iOS 앱에서 Node.js 런타임을 실행하는 라이브러리입니다.
iOS는 V82JSC(JavaScript Core) 레이어를 이용해 지원합니다.


reduxjs/redux-starter-kit: A simple set of tools to make using Redux easier

github.com/reduxjs/redux-starter-kit

redux JavaScript library

Redux을 기반으로 개발한 프레임워크(스타터킷) 입니다.
boilerplate code를 줄이고 Redux의 일반적인 유스케이스를 지원하는데 목적을 두고 있습니다.
immer를 사용한 Reducer와 Action과 selector를 지원합니다.


egoist/import-http: Import modules from URL instead of local node_modules

github.com/egoist/import-http

webpack JavaScript plugin module

브라우저 혹은 deno 처럼 module을 import m from "https://"와 같이 지정할 수 있도록 지원하는 webpack, rollup 플러그인 입니다.
모듈의 다운로드, 캐시, import 구문 변환을 지원합니다.


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