Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
個人的に嬉しかったpnpmの新機能・3選
Search
Atsushi Matsuo
April 11, 2026
Programming
300
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
個人的に嬉しかったpnpmの新機能・3選
2026-04-11 PHPカンファレンス小田原2026 LT資料
https://fortee.jp/phpconodawara-2026
Atsushi Matsuo
April 11, 2026
More Decks by Atsushi Matsuo
See All by Atsushi Matsuo
PHP 8.5へのバージョンアップ時にも役立つAST(抽象構文木)
matsuo_atsushi
0
61
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
900
20年以上続くプロダクトでも使い続けられる静的解析ツールを求めて
matsuo_atsushi
0
240
PHPのバージョンアップ時にも役立ったAST(2026年版)
matsuo_atsushi
0
780
テストやOSS開発に役立つSetup PHP Action
matsuo_atsushi
0
410
PHPライセンス変更の議論を通じて学ぶOSSライセンスの基礎
matsuo_atsushi
0
350
Windows版PHPのビルド手順とPHP 8.4における変更点
matsuo_atsushi
0
2k
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
650
OSSの開発や貢献時に役立つRFC
matsuo_atsushi
0
290
Other Decks in Programming
See All in Programming
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2k
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
110
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
240
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
1.9k
速習iPhone Duo対応
yuukiw00w
1
520
WebAssembly in Android Apps 〜 WASMはJNIの夢を見るか
keiji
1
110
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
5
3.1k
JPUG勉強会 OSSデータベースの内部構造を理解しよう(第2回)
oga5
0
250
App Intentsのビルドプロセスを支える技術
kntkymt
0
380
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.8k
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
0
220
Building an Out-of-Order CPU
latte72
1
780
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
699
190k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
260
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
280
エンジニアに許された特別な時間の終わり
watany
109
250k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.6k
A Tale of Four Properties
chriscoyier
163
24k
Un-Boring Meetings
codingconduct
0
420
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
520
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
Designing for humans not robots
tammielis
254
26k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
570
Transcript
個人的に嬉しかった pnpmの新機能・3選 2026年4月11日 PHPカンファレンス小田原2026 サイボウズ株式会社 松尾篤 1
個人的に嬉しかったpnpmの新機能・3選 今回の話題 はじめに • なぜnpmからpnpmに移行したのか • 個人的に嬉しかったpnpmの新機能・3選 • npmサプライチェーン攻撃に対する緩和策 2
個人的に嬉しかったpnpmの新機能・3選 自己紹介 はじめに 松尾篤 • PHP使用歴:約21年 • PHPを使った開発歴は約18年 • 2023年4月にGaroon開発チームに加入
• これまでの登壇実績(PHP関連) • PHPカンファレンス名古屋2025「PHPのバージョンアップ時にも役立ったAST」 • PHPerKaigi 2025「Windows版PHPのビルド手順とPHP 8.4における変更点」 • PHPカンファレンス福岡2025「PHPライセンス変更の議論を通じて学ぶOSSライセンスの基礎」 • PHPカンファレンス香川2025「テストやOSS開発に役立つSetup PHP Action」 • PHPerKaigi 2026「PHPのバージョンアップ時にも役立ったAST(2026年版)」 • pnpm使用歴:約7ヶ月 3
なぜnpmからpnpmに移行したのか 4
個人的に嬉しかったpnpmの新機能・3選 pnpmの概要 なぜnpmからpnpmに移行したのか • Node.js標準のパッケージマネージャーであるnpmより高速でディスクの 使用効率も優れる • フロントエンドのパッケージ管理ツールとして採用例が増えてきている • PHPを使う開発者もnpmパッケージのインストールや管理は必要
5
個人的に嬉しかったpnpmの新機能・3選 npmサプライチェーン攻撃に対する緩和策の1つとして なぜnpmからpnpmに移行したのか • 2025年9月前後からnpmサプライチェーン攻撃が加速 • pnpmは依存ライブラリインストール時の安全性を高めやすい • pnpm 10では依存関係のライフサイクルスクリプトがデフォルトで実行され
ない • pnpm 10.16で追加されたminimumReleaseAgeオプションにより悪性マル ウェアを含むパッケージが混入するリスクを低減できる 6
個人的に嬉しかったpnpmの新機能・3選 7
個人的に嬉しかったpnpmの新機能・3選 個人的に嬉しかったpnpmの新機能・3選 個人的に嬉しかったpnpmの新機能・3選 • pnpm 10.16で追加されたminimumReleaseAge • pnpm 10.21で追加されたtrustPolicy •
pnpm 10.23で追加されたpnpm listの--lockfile-onlyオプション 8
個人的に嬉しかったpnpmの新機能・3選 pnpm 10.16で追加されたminimumReleaseAge 個人的に嬉しかったpnpmの新機能・3選 • 公開直後のnpmパッケージのインストールを一定時間避ける機能 • pnpm-workspace.yamlにおける設定例 • minimumReleaseAge:
20160 • 悪性マルウェアを含むバージョンのパッケージが混入するリスクを低減 9
個人的に嬉しかったpnpmの新機能・3選 pnpm 10.21で追加されたtrustPolicy 個人的に嬉しかったpnpmの新機能・3選 • no-downgradeに設定している場合に以前より信頼レベルの下がったパッ ケージのインストールを回避できる • 侵害されている可能性のあるバージョンや信頼性の低いバージョンのイン ストールを回避できる
• npm provenance付きで公開されるパッケージが増えることに期待 10
個人的に嬉しかったpnpmの新機能・3選 pnpm 10.23で追加されたpnpm listの--lockfile-onlyオプション 個人的に嬉しかったpnpmの新機能・3選 • 実際のnode_modulesディレクトリを確認する代わりにロックファイル (pnpm-lock.yaml)からパッケージ情報を読み取るオプション • node_modulesディレクトリがなくてもパッケージの一覧を確認できる
例)OSSライセンスの情報表示用に一覧を取得した時に作業ディレクトリの状態 に左右されなくなる 11
npmサプライチェーン攻撃に対する緩和策 12
個人的に嬉しかったpnpmの新機能・3選 npmサプライチェーン攻撃に対する緩和策 npmサプライチェーン攻撃に対する緩和策 • https://pnpm.io/en/supply-chain-security より抜粋 • 危険なpostinstallスクリプトの実行を阻止 • ロックファイルを使う
• pnpm-lock.yaml(npmでは「package-lock.json」に相当) • pnpm install --frozen-lockfile(npmでは「npm ci」に相当) • 依存ライブラリをアップデートする際にはクールダウン期間を設ける • pnpmならminimumReleaseAge • trustPolicyを使用して信頼レベルの下がったパッケージのインストールを回避 13
©️ Cybozu, Inc. 14