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