GNU/Linux >> Znalost Linux >  >> Linux

Jak nainstalovat balíčky Npm v Nixos?

V NixOS jsem nainstaloval balíček yarn jako obvykle spuštěním $ nix-env -i yarn . Nyní se pokouším spustit yarn přes $ yarn start . To mě ale vede k následující chybě.

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

Když se pokusím nainstalovat webpack-dev-server mým obvyklým způsobem NixOS dostávám chybu „neodpovídá žádné derivace“.

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

Četl jsem, že webpack-dev-server je balíček npm a nejsem si jistý pár otázkami ohledně relevance toho v tomto případě.

  1. Má smysl používat npm, jiného správce balíčků než nix,
    pod Nix?
  2. Pokud je odpověď na (1) ano, jak nainstalovat npm na NixOS? Při vyhledávání pomocí nix-env nevidím
    dostupné npm , jako $ nix-env -qa npm také neodpovídá žádné odvozeniny.

Jaký je správný způsob instalace webpack-dev-server na NixOS?

UPRAVIT

Pokusil jsem se nainstalovat webpack-dev-server po komentovaném odkazu a podařilo se mu nainstalovat node2nix , ale nejsem schopen dokončit krok 2 uvedený v souboru readme.

Nalezl jsem soubor uvedený v kroku 2 v /nix/store v

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

Mohu tento soubor otevřít a zobrazit si uvedené balíčky npm, ale oprávnění jsou pouze pro čtení, dokonce i se systémem sudo – takže bych musel upravit jeho oprávnění, abych je mohl změnit.

Zdá se, že bych neměl upravovat tento /nix/store soubor přímo a měl by s ním místo toho manipulovat nepřímo přes nix. Mám pravdu, že bych tento soubor neměl přímo upravovat? Pokud ano, jak jinak mohu dokončit krok 2 pomocí nix nebo něčeho jiného k přidání webpack-dev-server k tomu?

Přijatá odpověď:

Existuje několik způsobů, jak používat balíčky npm prostřednictvím nix:

Pro své osobní projekty používám nix-shell pak v rámci shellu používám skripty npm, abych zabránil potřebě globálních balíčků npm (jako u gulp). Proces vypadá asi takto (a je pravděpodobně velmi podobný pro přízi):

$ 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

To mi funguje dobře, protože žádný z mých balíčků nemá binární závislosti. Tento příspěvek popisuje vytvoření default.nix pro váš projekt, takže nebudete muset specifikovat závislosti pro každé vyvolání nix-shell, ale je to volitelné.

Dalším způsobem je použití npm2nix:

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

Což způsobí, že Nix bude spravovat všechny balíčky npm v projektu.

Související:Elektrika – Jak zapojit vypínač wifi s kabeláží, která neodpovídá instalačním pokynům?

Může být dobrý nápad seznámit se s nix-shell, protože pokus o instalaci balíčků uzlů / jakékoli závislosti ve vašem profilu nix (prostřednictvím nix-env nebo nox) maří účel nix tím, že znečišťuje „globální“ jmenný prostor.


Linux
  1. Jak spravovat balíčky NodeJS pomocí Npm

  2. Jak nainstalovat softwarové balíčky pomocí Ansible playbooku

  3. Jak nainstalovat React na Ubuntu 20.04

  1. Jak nainstalovat balíčky z konkrétního úložiště v Linuxu

  2. Jak nainstalovat Yarn na Ubuntu 20.04?

  3. Jak nainstalovat balíčky RPM na Ubuntu

  1. Jak nainstalovat Wiki.js na CentOS 7

  2. Jak nainstalovat Node.js &NPM na Debian 11

  3. Jak nainstalovat npm v alpine linux