🐕

✍️ Projenでpackage.jsonにスクリプトを追加する

に公開

Projenを使って、package.jsonscripts に自分のスクリプトを追加する方法はいくつかありますが、最も正規な方法は addScripts() を使うものです。

基本的な使い方

TypeScriptProjectNodeProject などの Projen プロジェクトで、次のように記述するだけで、package.json にスクリプトを追加できます:

project.addScripts({
  connect: 'npx ts-node src/index.ts',
});

この設定は、結果的に次のような package.json を生成します:

"scripts": {
  "connect": "npx ts-node src/index.ts"
}

複数追加する場合

project.addScripts({
  dev: 'vite',
  build: 'tsc',
  lint: 'eslint src --ext .ts',
});

addScripts() を使うメリット

  • 正規APIであり、Projen v0.61.9 以降で実装済み
  • project.package.addScript()project.addPackageJsonOverride() と異なり、簡単でわかりやすい
  • 複数スクリプトを一括で記述可能

主な注意点

  • addScript() は Projen v0.79.16 以降で protected になっており、外部からは使用不可
  • addPackageJsonOverride()TypeScriptProject には直接なく、project.package.packageJson.file.addOverride(...) という諦め案が必要

おわりに

Projen は実用性の高いツールですが、バージョン上のAPI変更もあるので、最新の作法を使うことが重要です。addScripts() はその中で最も便利な方法ですので、Projen使いには必要なテクニックと言えるでしょう。

Discussion