GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie installiere ich Npm-Pakete in Nixos?

In NixOS habe ich das Paket yarn installiert wie gewohnt durch Ausführen von $ nix-env -i yarn . Jetzt versuche ich, yarn auszuführen über $ yarn start . Aber das führt mich zu folgendem Fehler.

$ 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.

Wenn ich versuche, webpack-dev-server zu installieren Auf meine übliche NixOS-Weise erhalte ich die Fehlermeldung „Übereinstimmung mit keinen Ableitungen“.

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

Ich habe diesen webpack-dev-server gelesen ist ein npm-Paket und bin mir bei einigen Fragen zur Relevanz in diesem Fall nicht sicher.

  1. Ist es sinnvoll, npm, einen anderen Paketmanager als nix,
    unter Nix zu verwenden?
  2. Wenn Antwort auf (1) ja ist, wie installiere ich dann npm auf NixOS? Ich sehe npm nicht
    verfügbar, wenn ich über nix-env suche , als $ nix-env -qa npm stimmt auch mit keinen Ableitungen überein.

Wie installiere ich webpack-dev-server richtig? auf NixOS?

BEARBEITEN

Ich habe versucht, webpack-dev-server zu installieren dem kommentierten Link gefolgt und konnte node2nix installieren , aber ich kann Schritt 2, der dort in der Readme-Datei aufgeführt ist, nicht ausführen.

Ich habe die Datei, auf die in Schritt 2 verwiesen wird, in /nix/store gefunden bei

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

Ich kann diese Datei öffnen, um die aufgelisteten npm-Pakete anzuzeigen, aber die Berechtigungen sind schreibgeschützt, sogar wenn sie mit sudo ausgeführt werden – also müsste ich ihre Berechtigungen bearbeiten, um sie zu ändern.

Es scheint, dass ich diesen /nix/store nicht bearbeiten sollte Datei direkt und sollte stattdessen indirekt über nix manipuliert werden. Habe ich Recht, dass ich diese Datei nicht direkt bearbeiten sollte? Wenn ja, wie kann ich sonst Schritt 2 abschließen, indem ich nix oder etwas verwende, um webpack-dev-server hinzuzufügen dazu?

Akzeptierte Antwort:

Es gibt mehrere Möglichkeiten, npm-Pakete über nix zu verwenden:

Für meine persönlichen Projekte verwende ich nix-shell dann verwende ich innerhalb der Shell npm-Skripte, um die Notwendigkeit globaler npm-Pakete zu verhindern (wie bei gulp). Der Prozess sieht in etwa so aus (und ist wahrscheinlich für Garn sehr ähnlich):

$ 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

Dies funktioniert gut für mich, da keines meiner Pakete binäre Abhängigkeiten hat. Dieser Beitrag beschreibt die Erstellung einer default.nix für Ihr Projekt, sodass Sie nicht für jeden Aufruf von Nix-Shell Abhängigkeiten angeben müssen, aber es ist optional.

Eine andere Möglichkeit ist die Verwendung von npm2nix:

node2nix -i node-packages.json # creates ./default.nix
nix-shell # nix-shell will look for a default.nix, which above will have generated

Was dazu führt, dass Nix alle npm-Pakete im Projekt verwaltet.

Verwandte:Elektrik – Wie verdrahte ich einen WLAN-Lichtschalter mit einer Verkabelung, die nicht den Installationsanweisungen entspricht?

Es kann eine gute Idee sein, sich mit Nix-Shell vertraut zu machen, da der Versuch, Knotenpakete / Abhängigkeiten in Ihrem Nix-Profil (über Nix-Env oder Nox) zu installieren, den Zweck von Nix zunichte macht, indem der „globale“ Namespace verschmutzt wird. P>

Linux
  1. So installieren Sie Pakete aus einem bestimmten Repository in Linux

  2. So installieren Sie Softwarepakete mit einem Ansible-Playbook

  3. Wie installiere ich Yarn unter Ubuntu 20.04?

  4. So installieren Sie RPM-Pakete auf Ubuntu

  5. So installieren Sie npm unter alpinem Linux

So installieren Sie Anaconda unter Linux

So installieren Sie Pakete im Atom-Texteditor

So installieren Sie die neuesten NodeJS und NPM unter Linux

So installieren Sie ReactJS unter Debian 11

So installieren Sie ReactJS unter CentOS 8

Wie installiere ich `build-essential` in `Cygwin`?