GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo instalar paquetes Npm en Nixos?

En NixOS, instalé el paquete yarn como de costumbre ejecutando $ nix-env -i yarn . Ahora estoy intentando ejecutar yarn a través de $ yarn start . Pero esto me lleva al siguiente error.

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

Cuando intento instalar webpack-dev-server en mi forma habitual de NixOS obtengo un error de "coincidencias sin derivaciones".

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

Leí que webpack-dev-server es un paquete npm, y no estoy seguro de un par de preguntas sobre la relevancia de eso en este caso.

  1. ¿Tiene sentido usar npm, un administrador de paquetes diferente a nix,
    bajo Nix?
  2. Si la respuesta a (1) es afirmativa, ¿cómo instalar npm en NixOS? No
    veo npm disponible cuando busco a través de nix-env , como $ nix-env -qa npm tampoco coincide con ninguna derivación.

¿Cuál es la forma correcta de instalar webpack-dev-server? en NixOS?

EDITAR

Intenté instalar webpack-dev-server siguiendo el enlace comentado y pude instalar node2nix , pero no puedo continuar con el paso 2 que aparece en el archivo Léame allí.

Localicé el archivo al que se hace referencia en el paso 2 en /nix/store en

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

Puedo abrir ese archivo para ver los paquetes npm enumerados, pero los permisos son de solo lectura, incluso se ejecutan con sudo, por lo que necesitaría editar sus permisos para modificarlo.

Parece que no debería estar editando este /nix/store file directamente y, en cambio, debería manipularlo indirectamente a través de nix. ¿Tengo razón en que no debería editar este archivo directamente? Si es así, ¿de qué otra forma puedo completar el paso 2 usando nix o algo así para agregar webpack-dev-server? a eso?

Respuesta aceptada:

Hay varias formas de usar paquetes npm a través de nix:

Para mis proyectos personales, uso nix-shell luego, dentro del shell, uso scripts npm para evitar la necesidad de paquetes globales npm (como con gulp). El proceso se parece a esto (y probablemente sea muy similar para el hilo):

$ 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

Esto funciona bien para mí ya que ninguno de mis paquetes tiene dependencias binarias. Esta publicación describe la creación de un default.nix para su proyecto para que no tenga que especificar dependencias para cada invocación de nix-shell, pero es opcional.

Otra forma es usando npm2nix:

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

Lo que hará que Nix administre todos los paquetes npm en el proyecto.

Relacionado:Eléctrico:¿cómo cablear un interruptor de luz wifi con un cableado que no coincide con las instrucciones de instalación?

Puede ser una buena idea familiarizarse con nix-shell, ya que intentar instalar paquetes de nodos/cualquier dependencia en su perfil de nix (a través de nix-env o nox) anula el propósito de nix al contaminar el espacio de nombres "global".


Linux
  1. Cómo instalar paquetes desde un repositorio específico en Linux

  2. Cómo instalar paquetes de software con un playbook de Ansible

  3. Cómo instalar React en Ubuntu 20.04

  4. ¿Cómo instalar Yarn en Ubuntu 20.04?

  5. Cómo instalar npm en alpine linux

Cómo instalar Anaconda en Linux

Cómo instalar paquetes en Atom Text Editor

Cómo instalar los últimos NodeJS y NPM en Linux

Cómo instalar ReactJS en Debian 11

Cómo instalar ReactJS en CentOS 8

¿Cómo instalar `build-essential` en `Cygwin`?