Fork me on GitHub

2019-02-26: yarn v2 후보(berry), Fastify v2, TSLint의 향후 방향

Translator: U-Yeong Ju Edit on GitHub See Revisions

JSer.info #424 - yarn v2 저장소를 공개했습니다.

아래 이슈에도 작성돼 있듯이 v1과 저장소를 분리한 이유는 이슈 분류를 좀 더 편하게 하기 위해서라고 합니다.

The codename for these changes is Berry
-- https://github.com/yarnpkg/yarn/issues/6953

"Berry"라는 이름은 v2 용으로 변경한 코드 네임입니다.

v2(berry)에는 Yarn's Future - v2 and beyond에서 예고한 기능이 구현돼 있는 단계인 것 같습니다.

소스 코드는 타입스크립트로 작성돼 있으며 monorepo로 관리합니다.
yml 서브셋 격인 syml이라는 포맷을 만들어 lock 파일에 적용하고 있습니다. 또, 플러그인 구조가 추가돼 PnP나 npm(package-lock.json을 다루는 등) 등의 처리는 플러그인으로 대응합니다.
이어서 워크스페이스 개선 내용으로 Constraints 라고 하는 Prolog(실제론 tau-prolog)를 사용한 제약을 다루는 플러그인을 추가했습니다. 워크스페이스 간 의존 규칙 등을 Prolog를 이용해 기술하여 보다 효율적으로 제약을 다룰 수 있도록 하는데 목적을 두고 있습니다.

흥미가 있는 분은 Install로 테스트해보거나 Issue를 살펴보시면 좋을 것 같습니다.


TypeScript의 2019 June 로드맵에서 TSLint가 아니라 ESLint의 지원을 강화하겠다는 이야기가 했습니다. 이어서 typescript-eslint라는 프로젝트를 생성했고 ESLint 팀과 협력할 것이라고 발표했습니다.

이러한 배경 속에서 TSLint의 메인테이너가 TSLint의 향후 방향에 대한 글을 공개했습니다.

TSLint는 2019년 중에 비권장(당장은 아닙니다) 되며 향후엔 ESLint로의 마이그레이션하는 과정을 갖는다고 합니다. typescript-eslint는 아직 개발중이기 때문에 TSLint와 연계되는 규칙이 없는 것도 있습니다. 때문에 TSLint 자체도 당분간은 유지보수를 계속 이어갑니다.

현재 typescript-eslint의 동작에 관해서는 다음 글을 참고해주세요.


헤드라인


Release Version 3.5.0 · knockout/knockout

github.com/knockout/knockout/releases/tag/v3.5.0

JavaScript library ReleaseNote

Knockout 3.5.0을 릴리스했습니다.
foreach 바인딩의 동작 변경, 성능 개선, ko.when이 Promise를 반환하도록 수정했습니다.


Release: npm@6.9.0-next.0 - 📣 announcements - npm forum

npm.community/t/release-npm-6-9-0-next-0/5553

npm ReleaseNote

npm 6.9.0-next.0을 릴리스 했습니다.
페키지에 별명을 붙일 수 있는 package alias 기능과 --before 옵션을 지원합니다.


The npm Blog — Managing JavaScript in the Enterprise

blog.npmjs.org/post/182958759735/managing-javascript-in-the-enterprise

npm news

npm Enterprise를 정식으로 릴리스했습니다.
SSO 인증을 대응했고 private registry를 지원합니다.


dsherret/conditional-type-checks: Types for testing TypeScript types.

github.com/dsherret/conditional-type-checks

TypeScript library testing

Conditional Type를 사용해 TypeScript 타입을 Assertion 할 수 있는 라이브러리입니다.


Fastify v2.0.0 is here – Fastify – Medium

medium.com/@fastifyjs/fastify-v2-0-0-is-here-8275d613fba4

node.js ReleaseNote server

Node.js 프레임워크 Fastify 2.0.0를 릴리스했습니다.
onError, preParsing, preSerialization, preValidation Hook API를 추가했습니다.
plugin 불러오기 타임아웃을 설정할 수 있고 일관성 없던 시그니처를 수정했습니다.


yarnpkg/berry: 📦🐈 A modern, fast, reliable, package manager; part of the Yarn organization

github.com/yarnpkg/berry

yarn news

yarn v2이 될 소 스코드 저장소를 공개했습니다.
issue를 좀 더 편하게 분류하고 다루기 위해서 v1 저장소와 분리 했습니다.
현재 로드맵에서 예정한 기능은 어느정도 개발한 상태이지만 일부 기능과 문서가 아직 부족한 상황입니다.


아티클


AddyOsmani.com - JavaScript Loading Priorities in Chrome

addyosmani.com/blog/script-priorities/

JavaScript performance browser article

link rel=preload와 script 요소에 defer/async 속성을 조합할 때의 불러오기와 실행의 Priority에 관해 정리한 글입니다.


How @supports Works | CSS-Tricks

css-tricks.com/how-supports-works/

CSS article

CSS의 @supports 사용법과 유스케이스에 관해 작성한 글입니다.
또, JavaScript에서 CSS Supports를 사용한 Feature Detect 기법도 소개합니다.


Intelligent Tracking Prevention 2.1 | WebKit

webkit.org/blog/8613/intelligent-tracking-prevention-2-1/

safari security article

Safari 12.1에 도입되는 ITP(Intelligent Tracking Prevention) 2.1을 소개합니다. Partitioned Cookies와 DNT(Do Not Track)의 지원을 종료하며 document.cookie로 생성한 쿠기는 만료 기간을 7일로 제한합니다.


TSLint in 2019 – Palantir Blog – Medium

medium.com/palantir/tslint-in-2019-1a144c2317a9

TypeScript article Tools

TSLint의 향후 방침에 대해 이야기합니다.
올해 내 TSLint는 비권장되며 TSLint에서 ESLint로 마이그레이션하는 과정을 갖습니다.


서비스, 사이트, 문서


React – A JavaScript library for building user interfaces(일본어)

ja.reactjs.org/

React 번역

React 사이트의 일본어 버전입니다.


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


patr0nus/DeskGap: A cross-platform desktop app framework based on Node.js and the system webview

github.com/patr0nus/DeskGap/

node.js mac windows Electron

OS의 웹뷰 구조를 이용해 개발한 Electron과 비슷한 데스크탑 애플리케이션 개발 프레임워크입니다.
Chromium을 bundle 하고 있진 않지만 Node.js을 bundle 하고 있습니다.
제한적으로 Electron와 비슷한 몇 가지 API와 Node.js의 기능을 사용할 수 있습니다.


klaussinani/qoa: 💬 Minimal interactive command-line prompts

github.com/klaussinani/qoa

node.js library console UI

터미널 환경을 위한 대화형 인터페이스를 만들 수 있는 Node.js 라이브러리입니다.
Confirm, Quiz, Secure Prompt 등을 지원합니다.


jariazavalverde/tau-prolog: An open source Prolog interpreter in JavaScript

github.com/jariazavalverde/tau-prolog

JavaScript program library

Prolog 인터프리터 JavaScript 구현체입니다.


fagbokforlaget/simple-fs: Handles files on indexeddb like you would do in node.js (promise)

github.com/fagbokforlaget/simple-fs

browser JavaScript library

IndexedDB를 사용한 파일 시스템 스러운 API를 제공하는 브라우저 용 라이브러리입니다.


namics/webpack-config-plugins: Provide best practices for webpack loader configurations

github.com/namics/webpack-config-plugins

webpack 設定

webpack의 loader 설정을 단순하게 정리하여 제공하는 플러그인 입니다.
Babel, TypeScript, Sass, Font, Image 등의 빌드를 지원하는 플러그인이 준비돼 있습니다.


Pull Request to this article
記事を紹介する