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 규칙 설정을 자동으로 수행하는 도구.