🙄
nix-shellでnodejs 16系を使う
nix-shellはshell.nix
が存在する場合これを読み込むのでおそらくshell.nix
に書けば良い
{ pkgs ? import <nixpkgs> { } }:
pkgs.mkShell { packages = [ pkgs.nodejs-16_x ]; }
$ nix-shell --version
nix-shell (Nix) 2.3.15
$ nix-shell
> node -v
v16.13.0
もうちょっと詳しく
mkShellはnix-shell向けのderivationを書くときに使う。
packagesで利用するパッケージを書けば良い。
derivationにはpackagesという属性はない。nativeBuildInputsの値になる。
nativeBuildInputsはビルド時に利用しないパッケージを指定するのに使う。
作成中のnodejsアプリをビルドするのであれば buidInputs 属性をmkShellに指定するのが適切かもしれないが、著者の現在の理解度では判断がつかなかった。
Discussion