🙄

nix-shellでnodejs 16系を使う

2021/11/20に公開約500字

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

ログインするとコメントできます