Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8833

Cloud Foundry(IBM Cloud)でNode.jsのバージョン指定【.nvmrc】

$
0
0
Node.jsアプリケーションをそのままデプロイしようとすると以下の警告が出ます。 **WARNING** Node version not specified in package.json or .nvmrc. See: http://docs.cloudfoundry.org/buildpacks/node/node-tips.html Attempting to install: 10.24.0 package.jsonか.nvmrcに記述しろと書いてありますね。 Support .nvmrc file as an alternative to engine.version setting in package.json 前に書いた記事ではpackage.jsonのenginesに記載するやり方でしたが、今回は.nvmrcに記述します。 Cloud Foundry(IBM Cloud)でNode.jsの最新バージョンを利用する .nvmrcを作成してデプロイ 今更ですがnvmを内部で使ってたんですね。 macなどの場合はプロジェクトのルートで以下を実行します。 $ node -v >> .nvmrc これで.nvmrcが作成されてローカルのバージョンが.nvmrcに記載されます。 ただ最新は動かない場合が多い 先程のコマンドを実施した.nvmrcの中身はv16.0.0でした。 v16.0.0 この状態でデプロイしたら以下のエラーが発生 **ERROR** Unable to install node: no match found for 16.0.0 in [10.23.3 10.24.0 12.20.2 12.21.0 14.15.5 14.16.0 15.11.0 15.12.0] 2021-05-04T02:26:19.14+0900 [STG/0] ERR Failed to compile droplet: Failed to run all supply scripts: exit status 14 まぁつまりv15.12.0までしか対応してないよとのことです。 v15.12.0 と変更してデプロイしなおすとエラー回避できます。 時期によって対応状況は違うので、まずは最新版でデプロイして出たエラーメッセージにどのバージョンで対応済みかを知るのが良いかもしれません。 最新を使いたい時はbuildpacks指定の方法も Cloud Foundry(IBM Cloud)でNode.jsの最新バージョンを利用するの記事にあるbuildpacksでURL指定などをすると最新が使えるかもしれません。 所感 package.jsonのenginesに指定していると他の環境で利用しようとした時や利用パッケージによって変な挙動が発生することがあるので、pacakge.jsonのenginesに指定よりは楽な印象です。 個人的に今後も触ることがあれば.nvmrcに記載の方を選ぶ気がします。

Viewing all articles
Browse latest Browse all 8833

Trending Articles