Fork me on GitHub

2017-07-18 JS: Babylon.js 3.0, Yarn을 만드는 방법, Code splitting의 중복 모듈 검사

Translator: U-Yeong Ju Edit on GitHub See Revisions

JSer.info #340 - WebGL 프레임워크 Babylon.js 3.0이 릴리즈됐습니다.

WebGL 2, WebVR 1.1, morph target을 지원하고 Babylon.GUI가 추가됐습니다 또, WebCam을 이용한 라이브 텍스쳐를 대응하는 등 다양한 변경이 이뤄졌습니다.
자세한 내용은 릴리즈 노트 등을 참고하세요.


Let's Dev: A Package Manager | Yarn Blog에는 Yarn과 같은 패키지 매니저를 만드는 방법이 작성돼 있습니다.

300행 정도의 코드로 어떻게 패키지를 다운로드 하고 의존 관계 문제를 해결하며 링크하는지 또, 의존 관계 최적화가 성능에 미치는 영향 등 Yarn과 관련된 디자인에 관해 작성돼 있습니다.


samccone/bundle-buddy: A tool to identify bundle duplication across splits.는 Code Splitting 했을 때 생성된 각 bundle(chunck)에서 중복된 모듈이 없는지 시각화 해줍니다.

최근, 초기 로드 시간을 줄이기 위해 Code Splitting을 하는 경우가 늘어나고 있습니다.
한편, 본래 하나였던 bundle을 분리하게 되면 코드 간 공통으로 사용하는 모듈이 여러 bundle에서 참조될 가능성이 생깁니다. 이때 분리된 각 bundle에 같은 모듈의 복사본이 포함되게 됩니다.

이 도구는 Source Map을 사용해 각 bundle에서 중복해 포함돼 있는 모듈이 있는지 조사할 수 있도록 관련 정보를 시각화 해줍니다.


헤드라인


Announcing Babylon.js 3.0 - Building Apps for WindowsBuilding Apps for Windows

blogs.windows.com/buildingapps/2017/07/12/announcing-babylon-js-3-0/

WebGL ReleaseNote JavaScript library 3D

WebGL 프레임워크 Babylon.js 3.0이 릴리즈됐습니다.
WebGL 2, WebVR 1.1, morph target을 지원하고 Babylon.GUI가 추가됐습니다. 또, WebCam을 이용한 라이브 텍스쳐를 대응했습니다.


Release v2.4.0 Kill la Kill · vuejs/vue

github.com/vuejs/vue/releases/tag/v2.4.0

Vue ReleaseNote

Vue 2.4.0이 릴리즈됐습니다.
SSR에서 async component를 지원합니다. 컴포넌트 옵션으로 inheritAttrs, 인스턴스 프로퍼티로 $attrs$listeners가 추가됐습니다.
comments 옵션을 사용하여 템플릿 내에 HTML 코멘트를 유지할 수 있게 되는 등 다양한 변경이 이뤄졌습니다.


Release 0.21.0 · avajs/ava

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

JavaScript testing library ReleaseNote

AVA 0.21.0이 릴리즈됐습니다.
Buffer를 사용하고 있어 Node.js 4.5 미만에서 동작하지 않는 문제와 flow 타입과 관련된 사항이 수정됐습니다.


Security updates for all active release lines, July 2017 | Node.js

nodejs.org/en/blog/vulnerability/july-2017-security-releases/

ReleaseNote node.js security

Node.js v4, 6, 7, 8의 보안 업데이트가 이뤄졌습니다. V8 Snapshots를 활성화 할 경우 문제가 있어 기본적으로 snapshots이 비활성화 됐습니다. 따라서 이 문제가 해결되기 전 까지 당분간 vm.runInNewContext의 성능이 저하된 상태가 지속될 예정입니다.


Sass 3.5 is Released « Sass Blog

sass.logdown.com/posts/2026639-sass-35-is-released

Sass ReleaseNote

Sass 3.5이 릴리즈됐습니다.
::slotted()을 지원하고 CSS color function에 var()를 전달(pass)할 수 있도록 변경됐습니다. 또, Dart Sass의 호환성 개선이 이뤄졌습니다.


Release 8.0.0 · stylelint/stylelint

github.com/stylelint/stylelint/releases/tag/8.0.0

CSS Tools ReleaseNote

stylelint 8.0.0이 릴리즈됐습니다.
Semver policy와 새로운 config인 stylelint-config-recommended가 추가됐으며 일부 규칙이 삭제거나 비권장(deprecated) 됐습니다.


아티클


JavaScript Test-Runners Benchmark – DailyJS – Medium

medium.com/dailyjs/javascript-test-runners-benchmark-3a78d4117b4

JavaScript testing benchmark

여러개의 JavaScript 테스트 프레임워크를 벤치마크하여 소개한 글입니다.
동기 및 비동기 테스트를 jasmine, mocha, AVA, Jest 등 유명한 테스트 프레임워크에서 실행하고 각 속도를 비교 및 분석하고 있습니다.


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

developers.google.com/web/updates/2017/07/devtools-release-notes

Chrome debug article

Chrome 61 개발자 도구의 변경 사항이 정리돼 있습니다.
모바일 디바이스 시뮬레이트에 Throttling 설정이 추가됐고 Storage의 이용 현황이 표시됩니다. 또 Flamechart의 마우스 휠 동작을 설정 가능하도록 변경됐으며 ES Modules의 디버깅 기능이 추가됐습니다.


Let's Dev: A Package Manager | Yarn Blog

yarnpkg.com/blog/2017/07/11/lets-dev-a-package-manager/

yarn JavaScript tutorial article

Yarn 같은 패키지 관리 도구를 만들어보면서 그 디자인을 살펴볼 수 있는 튜토리얼입니다.
어떻게 패키지를 다운로드하고 의존 관계 문제를 해결하며 링크하는지 알 수 있습니다.
또, 의존 관계를 어떻게 최적화하는지에 대해서도 작성돼 있습니다.


사이트, 서비스, 문서


samccone/bundle-buddy: A tool to identify bundle duplication across splits.

github.com/samccone/bundle-buddy

webpack JavaScript Tools

webpack 등으로 Code Splitting한 경우에 각 bundle 파일에 중복돼 있는 모듈이 있는지 찾아볼 수 있는 도구입니다.


Learn Apollo | Hands-on GraphQL Tutorial

www.learnapollo.com/

GraphQL tutorial JavaScript

Apollo 클라이언트(GraphQL)를 학습할 수 있는 튜토리얼 사이트입니다.


Web 클라이언트 사이드의 성능 측정 항목 — Speed Index、Paint Timing、TTI etc... ::허브로그(일본어)

havelog.ayumusato.com/develop/performance/e744-performance_metrics.html

browser performance

웹 클라이언트 사이드 성능에 있어 중요 지표가 되는 값이나 Performance Budget 등, 관련된 용어가 설명돼 있습니다.


Redux isn't slow, you're just doing it wrong - An optimization guide | React Rocket

reactrocket.com/post/react-redux-optimization/

redux performance

Redux 기반의 애플리케이션의 성능 튜닝에 대해 작성돼 있는 글입니다. connect 옵션을 이용하고 컴포넌트에 필요한 최소한의 데이터를 전달하며 Reselect을 사용해 데이터를 플랫하게 운영하는 방법 등에 대해 소개돼 있습니다.


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


vadimdemedes/ink: 🌈 React for CLIs

github.com/vadimdemedes/ink

React console library

React스러운 접근법과 문법을 이용해 커맨드 라인 애플리케이션을 만들 수 있는 라이브러리입니다.
커맨드 라인 결과를 컴포넌트로 출력할 수 있도록 디자인돼 있습니다.


azu/immutable-array-prototype: A collection of Immutable Array prototype methods(Per method packages).

github.com/azu/immutable-array-prototype

JavaScript library npm

Array#push와 같이 배열 관련 가변 메서드를 불변 메서드로 개발한 버전을 모아놓은 라이브러리입니다.
메서드를 개별 패키지로 설치하는 것도 가능합니다.


indutny/webpack-common-shake: CommonJS Tree Shaker plugin for WebPack

github.com/indutny/webpack-common-shake

webpack node.js JavaScript

CommonJS의 모듈을 대상으로 Tree Shaking하는 webpack 플러그인 입니다.


Atomic Lab - component guide generator based on partial templates

steelydylan.github.io/atomic-lab/

HTML CSS debug Tools

Custom Element, EJS 등의 HTML 프래그먼트를 실제로 출력해보고 확인할 수 있는 개발 환경 도구입니다.


glayzzle/php-parser: NodeJS PHP Parser - extract AST or tokens (PHP5 and PHP7)

github.com/glayzzle/php-parser

AST JavaScript php library Tools

JavaScript로 작성된 PHP 5/7의 파서입니다.


Kornel / babel-preset-php · GitLab

gitlab.com/kornelski/babel-preset-php

babel php library

PHP의 문법으로 작성된 코드를 JavaScript의 문법으로 변환할 수 있는 Babel presets 입니다.


도서


Practical Node.js: Building Real-World Scalable Web Apps: Azat Mardan: 9781484230381: Amazon.com: Books

www.amazon.com/dp/1484230388

node.js book

2018년 3월 22일에 출간 예정인 Practical Node.js의 제 2 판입니다.


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