JetBrains Space ヘルプ

Node.js、npm

前提条件

  • プロジェクトルートに package.json を持つ Node.js プロジェクトがあります。

  • (オプション) プロジェクトには単体テストがあります。

  • アーティファクトを Space パッケージに公開する場合は、プロジェクトに npm レジストリがあることを確認してください。

対象イメージ

Node.js プロジェクトでビルド、テストを実行、公開する

現在、オートメーションは npm を操作するための API を提供していません。Node.js プロジェクトを構築、テスト、公開する唯一の方法は、シェルスクリプトで npm ツールを使用することです。

.space.kts の内容は次のようになります。

job("Run npm test and publish") { container(displayName = "Run publish script", image = "node:14-alpine") { env["REGISTRY"] = "https://npm.pkg.jetbrains.space/mycompany/p/projectkey/mynpm" shellScript { interpreter = "/bin/sh" content = """ echo Install npm dependencies... npm ci echo Run build if it exists in package.json... npm run build --if-present echo Run tests... npm run test echo Run publishing... chmod +x ./publish.sh ./publish.sh """ } } }

さらに詳しく:

  • env["REGISTRY"] : npm レジストリを指定します。

  • npm ci : npm の依存関係をインストールします。

  • npm run build : build ステップが存在する場合は実行します。

  • npm run test : テストを実行します。

  • ./publish.sh : 公開スクリプトを実行します。詳細は以下を参照してください。

publish.sh スクリプトは、.npmrc ファイルを使用してレジストリで認証し、npm パッケージを公開します。

#!/bin/sh echo "Configure npm..." mkdir package && cd package echo "registry = $REGISTRY" >> ~/.npmrc AUTH=$(echo -ne "$JB_SPACE_CLIENT_ID:$JB_SPACE_CLIENT_SECRET" | base64 | tr -d \\n) echo "_auth = $AUTH" >> ~/.npmrc echo "email = mail@mail.com" >> ~/.npmrc echo "always-auth = true" >> ~/.npmrc echo "Publish package..." VERSION="0.0.$JB_SPACE_EXECUTION_NUMBER" npm config set init.version $VERSION npm init -y npm publish --registry $REGISTRY

さらに詳しく: