yarn
NixOSでは$ nix-env -i yarn
。今私はyarn
。$ yarn start
ただし、これにより次のエラーが発生します。
$ yarn start
yarn start v0.20.3
$ webpack-dev-server --env dev
sh: webpack-dev-server: command not found
error Command failed with exit code 127.
一般的なNixOS方式でインストールしようとすると、webpack-dev-server
「不一致フォーク」エラーが発生します。
$ nix-env -i webpack-dev-server
error: selector ‘webpack-dev-server’ matches no derivations
私はこれがwebpack-dev-server
npmパッケージであることを読んでおり、このケースに関連するいくつかの問題はわかりません。
- Nixでnpm(nixと他のパッケージマネージャ)を使用するのは合理的ですか?
- (1)に対する答えが「はい」の場合、NixOSにnpmをインストールする方法は?検索時に一致するフォークがない
nix-env
ため、利用可能なnpmは表示されません。$ nix-env -qa npm
webpack-dev-server
NixOSにインストールする正しい方法は何ですか?
編集する
webpack-dev-server
私は次のようにインストールしようとしていますコメントリンクをインストールできましたが、node2nix
Readmeに記載されている手順2を実行できませんでした。
/nix/store
手順2で参照されたファイルを次の場所で見つけました。
/nix/store/sgk7sxgqxrv2axkxjwc3y15apcqbrv1z-nixos-17.03.1482.1b57bf274a/nixos/pkgs/development/node-packages/node-packages.json
ファイルを開いてリストされたnpmパッケージを表示できますが、sudoとして実行している場合でも権限は読み取り専用であるため、変更するには権限を編集する必要があります。
/nix/store
このファイルを直接編集するのではなく、nixを介して間接的に操作するだけです。このファイルを直接編集しないでください。もしそうなら、nixを使用するか、他のものを追加してステップ2を実行するにはどうすればよいですかwebpack-dev-server
?
ベストアンサー1
nixを介してnpmパッケージを使用する方法はいくつかあります。
私の個人的なプロジェクトでは、nix-shell
私が使用するシェルで使用します。npmスクリプトnpmグローバルパッケージ(gulpなど)を必要としないようにします。プロセスは次のとおりです(おそらく糸の場合は非常に似ています)。
$ nix-shell -p nodejs-8_x
[nix-shell:yourproject]$ npm install # installs npm deps to project-local node_modules
[nix-shell:yourproject]$ npm exec (...) # using scripts configured in package.json
私のパッケージにはバイナリの依存関係がないので、これは私にとってうまくいきます。これ投稿では、nix-shellを呼び出すたびに依存関係を指定する必要がないように、プロジェクトに対してdefault.nixを生成する方法について説明しますが、これはオプションです。
別の方法はnpm2nixを使用することです。
node2nix -i node-packages.json # creates ./default.nix
nix-shell # nix-shell will look for a default.nix, which above will have generated
これにより、Nixはプロジェクト内のすべてのnpmパッケージを管理します。
nix-envまたはnoxを介してnixプロファイルにノードパッケージ/依存関係をインストールしようとすると、「グローバル」ネームスペースが汚染され、nixの目的が失われるため、nix-shellに慣れるのはおそらく良い考えです。