AWS Lambdaでnpm installを実行する
かなり限られたユースケースな気がするけど、後輩にやり方を尋ねられたのでいろいろ実験してみた。AWS Lambda(以下lambda)をnode4.3環境で動かす時はもちろんnpm
が最初から入っている。npm -v
とかはそのまま動くんだけど、lambdaの仕様上/tmp
以外のディレクトリは全てRead-onlyになっているためnpm install
は動かない。これは、このコマンドが/home
以下にいろんなファイルを作ろうとしてしまうからだ。
ググってみると同じ問題で困っている人が何人かいるようだった。
Install NPM packages on read-only file systems · Issue #12418 · npm/npm
.npmrc
を書き換えたりすればイケるかな、とも思ったけど、そもそも/tmp
以外全部いじれない。なので単純に$HOME
を変更して対処した。
export HOME='/tmp' && npm install *** --prefix='/tmp'
lambdaみたいなエフェメラルな環境であれば環境変数を好きに弄っても問題ない。最初から入っているnpm
を使うのならこれでいいんじゃないかな。