GNU/Linux >> Linux の 問題 >  >> Linux

NixosにNpmパッケージをインストールする方法は?

NixOSで、パッケージyarnをインストールしました いつものように$ 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.

webpack-dev-serverをインストールしようとすると 通常のNixOSの方法では、「派生に一致しない」エラーが発生します。

$ nix-env -i webpack-dev-server
error: selector ‘webpack-dev-server’ matches no derivations

そのwebpack-dev-serverを読みました はnpmパッケージであり、この場合の関連性に関するいくつかの質問がわかりません。

  1. nixとは異なるパッケージマネージャーであるnpmを
    Nixで使用するのは理にかなっていますか?
  2. (1)の答えが「はい」の場合、NixOSにnpmをインストールする方法は?
    nix-envで検索したときにnpmが利用できるのがわかりません 、as $ nix-env -qa npm 派生物にも一致しません。

webpack-dev-serverをインストールする正しい方法は何ですか NixOSで?

編集

webpack-dev-serverをインストールしようとしました コメントされたリンクをたどり、node2nixをインストールできました 、ただし、Readmeに記載されている手順2を実行することはできません。

手順2で参照したファイルを/nix/storeに配置しました で

//eadn-wc01-5196795.nxedge.io/nix/store/sgk7sxgqxrv2axkxjwc3y15apcqbrv1z-nixos-17.03.1482.1b57bf274a/nixos/pkgs/development/node-packages/node-packages.json

そのファイルを開いて、リストされているnpmパッケージを表示できますが、アクセス許可は読み取り専用であり、sudoで実行されている場合でも、変更するにはアクセス許可を編集する必要があります。

この/nix/storeを編集するべきではないようです ファイルを直接作成し、代わりにnixを介して間接的に操作する必要があります。 このファイルを直接編集してはいけないというのは正しいですか? その場合、nixなどを使用してwebpack-dev-serverを追加することで、ステップ2を完了するにはどうすればよいですか。 それに?

承認された回答:

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

私のパッケージにはバイナリ依存関係がないので、これは私にとってうまく機能します。この投稿では、プロジェクトのdefault.nixの作成について説明しているため、nix-shellを呼び出すたびに依存関係を指定する必要はありませんが、オプションです。

別の方法は、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パッケージを管理します。

関連:電気–インストール手順と一致しない配線でwifiライトスイッチを配線する方法は?

ノードパッケージ/nixプロファイルの依存関係(nix-envまたはnoxを介して)をインストールしようとすると、「グローバル」名前空間を汚染することでnixの目的が損なわれるため、nix-shellに精通することをお勧めします。


Linux
  1. Linuxで特定のリポジトリからパッケージをインストールする方法

  2. Npmを使用してNodeJSパッケージを管理する方法

  3. Ubuntu20.04にReactをインストールする方法

  1. Ansibleプレイブックを使用してソフトウェアパッケージをインストールする方法

  2. Ubuntu 20.04にYarnをインストールする方法は?

  3. UbuntuにRPMパッケージをインストールする方法

  1. CentOS7にWiki.jsをインストールする方法

  2. Node.jsとNPMをDebian11にインストールする方法

  3. アルパイン Linux に npm をインストールする方法