release-github-actions icon indicating copy to clipboard operation
release-github-actions copied to clipboard

`npm ci` および `npm install` が "install" コマンドとして扱われない

Open nogic1008 opened this issue 2 years ago • 3 comments

Describe the bug: バグの概要

npm ci コマンドnpm installコマンドと同じような動きをしますが、package-lock.jsonに基づいてより厳密にパッケージのインストールを行います。 そのため、GitHub ActionsのNode.jsテンプレートにもあるように、CI/CD環境でnpm installの代わりとして使われています。

しかしながら、このactionでは、BUILD_COMMANDnpm ciを含めても"install"コマンドとして扱われません。 そのため、不要であるはずのnpm install(およびnpm install --production)コマンドがビルド時に追加されてしまいます。

--ignore-scriptsを明示的に指定する必要がある場合[^1]に、この挙動はビルドプロセスに影響を与えます。 [^1]:huskyを利用している場合など

To Reproduce: 再現手順

  1. 以下のようにnpm ciまたはnpm installを含むBUILD_COMMANDを指定する
steps:
  - uses: technote-space/[email protected]
    with:
      BUILD_COMMAND: npm ci --ignore-scripts && npm run build

Expected behavior: 期待する動作

  • npm ciBUILD_COMMANDコマンドに含む場合も、デフォルトのnpm installを実行しない

Screenshots: スクリーンショット

  • エラー発生時のログ
    • 余計なnpm install --productionコマンドが実行されてしまったことで、huskyコマンドがないエラーが発生している

Operating environment: バグが発生した環境

nogic1008 avatar Apr 30 '23 06:04 nogic1008

:raised_hands: Thanks for opening your first issue here! Be sure to follow the issue template!

welcome[bot] avatar Apr 30 '23 06:04 welcome[bot]

hasInstallCommandの条件式が原因だと思われますが、現状では仮にnpm installを指定しても"install"コマンドとして扱われません。 (npmの場合はnpm run installと指定しないとhasInstallCommandtrueにならない)

nogic1008 avatar Apr 30 '23 07:04 nogic1008

@technote-space Any updates?

nogic1008 avatar Apr 01 '24 23:04 nogic1008