JSer.info #526 - npm 7이 정식 릴리스됐다.
npm install --global npm으로 npm 7을 설치할 수 있다.
Node.js 15부터 npm 7이 포함된다.
- npm 7 is now generally available! - The GitHub Blog
- Presenting v7.0.0 of the npm CLI - The GitHub Blog
npm 7에서 package-lock.json 포멧이 변경된다.
이와 함께 yarn.lock 파일 지원이 추가됐다.
그 외 비호환 변경 사항으로 peerDependencies 자동 설치, npx 명령어 변경, npm audit 출력 형식 변경이 포함됐다.
기능 추가로는 acceptDependencies 지원, workspaces를 지원한다.
명령어 관련해서는 npm exec, npm set-script, npm diff 등이 추가됐다.
또, 정식 릴리스에 맞춰 Dependabot이 npm 7을 지원한다.
renovatebot은 아래 Issue를 참고하길 바란다.
Vuex 4.0.0이 릴리스됐다.
Vue 3 지원, 설치 프로세스 변경, this.$store의 전역 타입 정의 제거.
또, Vue 3의 배포 형식에 맞춰 esm, cjs, global 같은 복수 형식의 빌드를 제공한다.
Vuex 4.0.0에 Composition API에 대응하는 useStore API가 추가됐다.
3.x에서 4.x으로 마이그레이션은 아래 문서를 참고한다.
헤드라인
npm 7 is now Generally Available - GitHub Changelog
github.blog/changelog/2021-02-02-npm-7-is-now-generally-available/
npm 7이 latest로서 릴리스돼 npm install --global npm으로 npm 7을 설치할 수 있게 됐다.
Release v6.0.0 · puppeteer/puppeteer
github.com/puppeteer/puppeteer/releases/tag/v6.0.0
Puppeteer v6.0.0 릴리스.
aria/* selector가 비표시 등 스킵된 요소에는 매치되지 않도록 변경, TypeScript 타입 정의 파일이 패키지에 포함되도록.
또, Chromium 갱신, page.emulateNetworkConditions 추가, Apple M1 지원 등.
Node v15.8.0 (Current) | Node.js
nodejs.org/en/blog/release/v15.8.0/
Node.js 15.8.0 릴리스.
crypto 모듈에 generatePrime과 checkPrime 메서드 추가, npm 7.5.0으로 갱신.
dgram.createSocket와 readline.question에서 AbortSignal 지원.
Release v4.0.0 · vuejs/vuex
github.com/vuejs/vuex/releases/tag/v4.0.0
Vuex 4.0이 릴리스 됐다.
Vue 3 지원, 설치 프로세스 변경, Vue 3에 맞춘 bundle 파일 형식 배포.
Node.js 14.x runtime now available in AWS Lambda | AWS Compute Blog
aws.amazon.com/jp/blogs/compute/node-js-14-x-runtime-now-available-in-aws-lambda/
AWS Lambda에서 Node.js 14를 지원한다.
Typicode's blog - Husky 5
Git Hooks를 다루는 husky 5 정식 릴리스.
의존 라이브러리 없도록 변경, 라이센스가 MIT에서 License Zero's Parity License로 변경됐다.
4.x에서의 마이그레이션 도구도 함께 공개됐다.
아티클
Node By Numbers 2020 - NodeSource
nodesource.com/blog/node-by-numbers-2020
Linux 환경 용 Node.js에 대한 숫자로 되돌아보는 2020년. Nodesource의 글이다.
rpm과 deb 다운로드 수, 지역, 버전별 다운로드 수 등.
보안 릴리스가 있는 경우에 다운로드 스파이크가 발생한 일에 대해.
SMS OTP 자동 입력 의한 리스크와 대책 - Akaki I/O(일본어)
akaki.io/2021/sms_otp_autofill
iOS와 Android에서의 SMS OTP 자동 입력(autocomplete="one-time-code") 동작 검증.
피싱 등 공격에 활용될 수 있는 경우와 Domain-bound codes의 자동 입력 검증 방식 및 사양 등 소개.
순수 WebGL과 TypeScript로 Vercel 로고 만들기(일본어)
zenn.dev/ixkaito/articles/webgl-typescript-vercel-logo
WebGL를 사용해 도형을 그리는 과정을 step by step으로 설명하는 튜토리얼.
useEncapsulation | Kyle Shevlin
kyleshevlin.com/use-encapsulation
React Component에서 다루는 State를 Custom Hooks로 만드는 패턴을 소개.
Custom Hooks에 정리하는 것으로 State 및 조작을 캡슐화할 수 있고 의존 관계를 파악하기 쉬워진다고 설명.
Introducing Private Click Measurement, PCM | WebKit
webkit.org/blog/11529/introducing-private-click-measurement-pcm/
iOS 14.5 베타에서 Safari와 앱에서 가능한 Private Click Measurement(PCM)에 대한 해설.
트래커로부터 프라이버시를 보호하면서 광고 컨버전을 지연 송신하는 구조에 대해.
10 bad TypeScript habits to break this year
startup-cto.net/10-bad-typescript-habits-to-break-this-year/
TypeScript에서 좋지 않은 습관 소개.
왜 좋지 않은지, 어떻게 해야 하는지에 대해서 작성돼 있다.
strict, ||, any, as, Optional, Genrics의 이름, 진위값 검사, !!, != null 등에 대해.
사이트, 서비스, 문서
Replay: Record and replay web applications
리플레이 디버깅 서비스.
리플레이를 기록 / 재생하기 위한 브라우저를 오픈소스로 공개. Firefox 기반이다.
https://github.com/RecordReplay/
소프트웨어, 도구, 라이브러리
samthor/gumnut: JS parser in Web Assembly / C
C로 작성된 JavaScript 파서를 WebAssembly로 컴파일 하여 다루는 JavaScript 파서 라이브러리.
davidjbradshaw/eslint-config-auto: Automatically configure ESLint based on project dependencies
github.com/davidjbradshaw/eslint-config-auto
프로젝트의 package.json 기초로 Airbnb 규칙을 기반으로한 ESLint 규칙 설정을 자동으로 수행하는 도구.
