Fork me on GitHub

2025-07-21のJS: Nuxt 4.0、Next.js 15.4、npmのパッケージメンテナーを狙ったフィッシング

Edit on GitHub 編集履歴を見る

JSer.info #742 - Nuxt 4.0がリリースされました。

新しいプロジェクト構造としてapp/ディレクトリがデフォルトになり、useAsyncDatauseFetchが同じキーでキャッシュを共有するようになりました。また、TypeScriptの設定ファイルをapp/server/node/shared用にそれぞれ作成し、CLIの改善なども含まれています。

マイグレーションガイドも公開されています。


Next.js 15.4がリリースされました。

Turbopackが全てのIntegration Testを通るようになっていて、次のメジャーアップデートであるNext.js 16でStableとなる予定です。
また、Next.js 16に向けた新機能がexperimentalフラグで利用できるようになり、今後のアップデートに向けた準備が進められています。

import type { NextConfig } from 'next';

const nextConfig: NextConfig = {
  experimental: {
    // Forward browser logs to the terminal for easier debugging
    browserDebugInfoInTerminal: true,

    // Enable new caching and pre-rendering behavior
    dynamicIO: true, // will be renamed to cacheComponents in Next.js 16

    // Activate new client-side router improvements
    clientSegmentCache: true,

    // Explore route composition and segment overrides via DevTools
    devtoolSegmentExplorer: true,

    // Enable support for `global-not-found`, which allows you to more easily define a global 404 page.
    globalNotFound: true,

    // Enable persistent caching for the turbopack dev server and build.
    turbopackPersistentCaching: true,
  },
};

export default nextConfig;

npmパッケージのメンテナーを狙ったフィッシングキャンペーンが増加し、著名なパッケージにマルウェアが混入する事例が発生しています。

具体的には、次のパッケージの特定のバージョンにマルウェアが含まれています。

それぞれnpmからは削除されるなどの対応は進んでいますが、該当するバージョンを利用していた場合は対応が必要です。

今回のケースでは npnjs[.]com というドメインでフィッシングサイトが作られ、メールでパッケージのメンテナーに対してログインを促す内容を送ることで、認証情報を盗むという手法が使われていたようです。


JSer.infoをサポートするには

JSer.info Sponsors

JSer.info SponsorsGitHub SponsorsとしてJSer.infoを支援してくれている方々です。


ヘッドライン


Release v3.0.1 · ueberdosis/tiptap

github.com/ueberdosis/tiptap/releases/tag/v3.0.1

JavaScript editor library

tiptap v3.0.1リリース。
tsupへの移行でUMDビルドサポート廃止、型定義の改善。
MarkViews追加、editor.unmount()メソッドの追加、SSRモードでのエディタ利用サポート。
Tippy.jsからFloating UIへの移行、React 19対応、@tiptap/extensionsに拡張機能をまとめるなど


Announcing Nuxt 4.0 · Nuxt Blog

nuxt.com/blog/v4

Vue library ReleaseNote

Nuxt v4リリース。
新しいプロジェクト構造としてapp/ディレクトリがデフォルトに。
useAsyncDatauseFetchが同じキーでキャッシュを共有するように、useFetchなどがデフォルトでshallow equalに変更。
TypeScriptの設定ファイルをapp/server/node/shared用にそれぞれ作成するように、CLIの改善など


Release v0.25.7 · evanw/esbuild

github.com/evanw/esbuild/releases/tag/v0.25.7

esbuild ReleaseNote

esbuild v0.25.7リリース。
import deferimport sourceをサポート、--abs-paths= flagを追加、特定の条件における文字列定数のinline化のサポート。


Next.js 15.4 | Next.js

nextjs.org/blog/next-15-4

Next.js ReleaseNote

Next.js 15.4リリース。
Turbopackが全てのIntegration Testを通るように、Next.js 16に向け機能をexperimentalフラグで利用できるように。


Active Supply Chain Attack: npm Phishing Campaign Leads to P...

socket.dev/blog/npm-phishing-campaign-leads-to-prettier-tooling-packages-compromise

npm security news

npmパッケージを狙ったフィッシングキャンペーンが増加しているという話。
次のnpmパッケージにマルウェアが含まれるため、該当するバージョンを利用している場合は対応が必要となる。

  • eslint-config-prettier: 8.10.1, 9.1.1, 10.1.6, 10.1.7
  • eslint-plugin-prettier: 4.2.2, 4.2.3
  • synckit: 0.11.9
  • @pkgr/core: 0.2.8
  • napi-postinstall: 0.3.1
  • is: 3.3.1

関連:


アーティクル


vitestではbeforeEachを使わない

blog.koh.dev/2025-07-11-vitest-beforeeach/

vite JavaScript test article

beforeEach + letではなく、test.extendsを使ったTest Contextを使うことで、実際にアクセスするテストケースだけで準備をする方法について


The world’s longest React hooks migration | by Chris Krogh | Jul, 2025 | The Craft

craft.faire.com/the-worlds-longest-react-hooks-migration-8f357cdcdbe9

React article

React Class Component + MobxからReact Hooksへの移行について。
GritQLを使ったマイグレーション、手動での移行とレビューについてなど


The History of React Through Code | Playful Programming

playfulprogramming.com/posts/react-history-through-code

React article history

ReactのAPIの変遷やアーキテクチャについて。
JSX/VDOM、Class Component、Hooks。Fiber、Suspense/use、React Server Componentについて


Parsing 1 Billion Rows in Bun/Typescript Under 10 Seconds

www.taekim.dev/writing/parsing-1b-rows-in-bun

Bun JavaScript article

Bunで10億行のファイルを効率的に読み取る方法についての話


スライド、動画関係


Vanilagy/mediabunny: Pure TypeScript media toolkit for reading, writing, and converting video and audio files, directly in the browser.

github.com/Vanilagy/mediabunny

JavaScript video audio library

WebCodecs APIを使ったメディアの読み書きや変換を行うライブラリ。
WebCodecs APIを使ったメディアデータのEncode/Decodeを行い、そのデータをコンテナに読み書きするMuxerの処理を行う


ソフトウェア、ツール、ライブラリ関係


ArnaudBarre/tsl: An extension of tsc for type-aware linting

github.com/ArnaudBarre/tsl

TypeScript plugin ESLint

TypeScriptプラグインとしてtypescript-eslintのような型情報を使ったLintを実装している。
型チェックと同時にTypeScriptのASTを使ったLintができる


この記事へ修正リクエストをする
JSer.info Slackに参加する