Fork me on GitHub

2021-05-11: Bootstrap 5, Underscore.js 1.13.0(`_.template` 보안 수정), Prettier 2.3

Translator: U-Yeong Ju Edit on GitHub See Revisions

JSer.info #539 - CSS 프레임워크 Bootstrap 5 릴리스.

Bootstrap 5에서는 IE 지원을 종료하고 jQuery를 의존하지 않도록 재작성됐다.
offcanvas 컴포넌트, card의 아코디언을 대체하는 새로운 accordion 컴포넌트가 추가됐다.
또, Form과 Layout 변경, RTL 지원, Sass의 Utility API도 추가됐다.

v4에서의 마이그레이션 방법은 다음 문서에 정리돼 있다.


Underscore.js 1.13 릴리스.

Underscore.js 1.13에서는 package.jsonexports 필드에 대응하며 ECMAScript Modules를 지원한다.

또, Underscore.js 1.12에서는 lodash 4.17.21에서 수정된 _.template의 취약점도 수정됐다.

이와 경우는 별로 없을 것이라고 생각하지만 Underscore와 Lodash 모두 _.templatevariable 옵션에 임의의 문자열을 전달할 경우에 전달한 문자열을 코드로 실행할 수 있는 취약점이 있었다.

const _ = require('underscore');
const template = _.template('hello: <%= name %>', { variable: '여기에 임의 코드 문자열을 전달할 수 있다는 취약점' });
template({ name: 'Mustache' });

Prettier 2.3 릴리스.

새로운 JavaScript 포메터(Ember / Handlebars) 추가, Handlebars 지원을 alpha에서 release로 변경, JSON5 / JSON 포멧이 수정됐다.
JavaScript의 변수 및 프로퍼티 대입 코드가 일관성 있게 정책이 수정됐으므로 업데이트 시 큰 Diif가 발생할 수 있다. 그 외에 GraphQL, MD, YAML 관련 프리티어 정책이 변경돼 Diff가 발생한다.


헤드라인


Bootstrap 5 | Bootstrap Blog

blog.getbootstrap.com/2021/05/05/bootstrap-5/

CSS library ReleaseNote JavaScript

Bootstrap 5 릴리스.
IE 지원 종료, jQuery 삭제.
offcanvas 컴포넌트, card 대체 accordion 컴포넌트 추가.
Form와 Layout 변경, RTL 지원, Sass의 Utility API 추가.


Underscore.js

underscorejs.org/#1.13.0

JavaScript library ReleaseNote

underscore 1.13.0 릴리스.
ECMAScript Modules 지원,
1.12.1에서는 _.templatevariable 옵션을 경우해 Code Injection이 가능한 취약점이 수정됐다.


Prettier 2.3. In which assignments are consistent, short keys non-breaking, and Handlebars official · Prettier

prettier.io/blog/2021/05/09/2.3.0.html

JavaScript Tools ReleaseNote

Prettier 2.3 릴리스.
JavaScript 포메터 정책이 크게 변경됨.
Handlebars 지원을 alpha에서 release로 변경, JSON5 / JSON 포멧 수정.


아티클


How we use Web Components at GitHub - The GitHub Blog

github.blog/2021-05-04-how-we-use-web-components-at-github/

WebComponents Github JavaScript article

GitHub의 Web Components를 주제로 한 글.
Rails ViewComponent와 Catalyst를 사용한 Web Components 구성, GitHub Elements 공개.


리소스 로드를 돕는 웹 브라우저 API의 세계(일본어)

nhiroki.jp/2021/05/06/resource-loading-apis

browser WebPlatformAPI article

미리 가져오기 및 로드 순서 등 웹 브라우저에서의 리소스 로드의 Hint API와 구조를 소개한다.


Hello, Modules!. JavaScript Modules, also known as ESM… | by Sindre Sorhus | May, 2021 | 🦄 Sindre Sorhus’ blog

blog.sindresorhus.com/hello-modules-d1010b4e777b

ECMAScript node.js article

Node.js 10 지원이 종료됨으로써 ESM으로의 이전을 어떻게 할지를 주제로 한 글
ESM의 장점, 패키지 유지보수 용 이전 가이드.


A Guide To Newly Supported, Modern CSS Pseudo-Class Selectors — Smashing Magazine

www.smashingmagazine.com/2021/04/guide-supported-modern-css-pseudo-class-selectors/

CSS article

CSS로 활용할 수 있는 최신 의사 클래스 소개.
임의의 a에 매치하는 :any-link, 포커스 돼 있는 요소를 다루는 :focus-visible:focus-within, 셀렉터를 다루는 :is()where():has(), :empty 등.


Chapter 8: CSS | CSS-Tricks

css-tricks.com/chapter-8-css/

CSS history article

CSS 역사를 주제를 한 글.
Lie, IE3의 CSS 구현, W3C의 CSS WG, Netscape의 JSSS。
doctype 선언으로 보는 스위치와 하위호환성, fantasai, CSS3에서의 모듈 접근 방식 등.


슬라이드, 영상


Svelte Summit Spring 2021 간단 정리(일본어)

zenn.dev/tomoam/articles/889618f2e6e62f

Svelte video Conference

Svelte Summit Spring의 영상과 각 영상 별 개요 정리.


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


sinclairzx81/hammer: Build Tool for Browser and Node Applications

github.com/sinclairzx81/hammer

JavaScript HTML Tools

esbuild를 기반으로한 parcel 처럼 HTML을 엔트리포인트로 한 빌드 / 개발 도구.


jsxtools/cqfill: Polyfill for CSS Container Queries

github.com/jsxtools/cqfill

CSS JavaScript polyfill library

CSS Container Queries의 polyfill.
PostCSS와 조합하여 사용할 수 있다.


google/zx: A tool for writing better scripts

github.com/google/zx

ShellScript node.js Tools

쉘 스크립트와 같은 처리를 자바스크립트로 작성할 수 있는 Node.js 도구.
Top-Level await와 함께 쉘 명령어를 그대로 쓸 수 있는 $, HTTP 통신할 수 있는 fetch 등 제공.


도서


프로페셔널 Web 프로그래밍 JavaScript | 야나이 마사카즈 | 공학 | Kindle 스토어 | Amazon(일본어)

www.amazon.co.jp/dp/B092QQJQF4/

JavaScript book

동작하는 웹 페이지에 초점을 맞춰 소개하는 자바스크립트 입문서.


React와 Vue에 관한 XSS 안티패턴(일본어)

zenn.dev/yuuhu04/books/xss-anti-pattern-of-react-and-vue

React Vue XSS document

React와 Vue에 관한 XSS 안티 패턴을 주제로 작성한 글.
React와 Vue의 이스케이프 구조, 프레임워크가 보호하지 않는 경우, XSS가 발생하는 패턴 등을 소개한다.


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