GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Menginstal Paket Npm Di Nixos?

Di NixOS, saya menginstal paket yarn seperti biasa dengan menjalankan $ nix-env -i yarn . Sekarang saya mencoba menjalankan yarn melalui $ yarn start . Tapi ini membawa saya ke kesalahan berikut.

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

Ketika saya mencoba menginstal webpack-dev-server dengan cara NixOS saya yang biasa, saya mendapatkan kesalahan 'tidak cocok dengan derivasi'.

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

Saya membaca webpack-dev-server adalah paket npm, dan saya tidak yakin dengan beberapa pertanyaan terkait relevansinya dalam kasus ini.

  1. Apakah masuk akal untuk menggunakan npm, pengelola paket yang berbeda dari nix,
    di bawah Nix?
  2. Jika jawaban (1) ya, lalu bagaimana cara menginstal npm di NixOS? Saya tidak
    melihat npm tersedia saat mencari melalui nix-env , sebagai $ nix-env -qa npm juga tidak cocok dengan turunan.

Bagaimana cara yang benar untuk menginstal webpack-dev-server di NixOS?

EDIT

Saya mencoba menginstal webpack-dev-server mengikuti tautan yang dikomentari dan dapat menginstal node2nix , tetapi saya tidak dapat mengikuti langkah 2 yang tercantum dalam readme di sana.

Saya menemukan file yang dirujuk pada langkah 2 di /nix/store di

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

Saya dapat membuka file itu untuk melihat paket npm yang terdaftar, tetapi izinnya hanya-baca, bahkan dijalankan dengan sudo — jadi saya perlu mengedit izinnya untuk mengubahnya.

Sepertinya saya tidak boleh mengedit /nix/store ini file secara langsung dan sebagai gantinya harus memanipulasinya secara tidak langsung melalui nix. Apakah saya benar bahwa saya tidak seharusnya mengedit file ini secara langsung? Jika demikian, bagaimana lagi saya bisa menyelesaikan langkah 2 dengan menggunakan nix atau sesuatu untuk menambahkan webpack-dev-server untuk itu?

Jawaban yang Diterima:

Ada beberapa cara untuk menggunakan paket npm melalui nix:

Untuk proyek pribadi saya, saya menggunakan nix-shell kemudian di dalam Shell saya menggunakan skrip npm untuk mencegah kebutuhan akan paket global npm (seperti dengan tegukan). Prosesnya terlihat seperti ini (dan mungkin sangat mirip dengan benang):

$ 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

Ini berfungsi dengan baik untuk saya karena tidak ada paket saya yang memiliki dependensi biner. Postingan ini menjelaskan pembuatan default.nix untuk proyek Anda sehingga Anda tidak perlu menentukan dependensi untuk setiap pemanggilan nix-shell, tetapi ini opsional.

Cara lain adalah menggunakan npm2nix:

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

Yang akan menyebabkan Nix mengelola semua paket npm dalam proyek.

Terkait:Listrik – Bagaimana cara menyambungkan sakelar lampu wifi dengan kabel yang tidak sesuai dengan petunjuk pemasangan?

Ini mungkin ide yang baik untuk menjadi akrab dengan nix-shell, karena mencoba menginstal paket node / ketergantungan apa pun di profil nix Anda (melalui nix-env atau nox) mengalahkan tujuan nix dengan mencemari namespace "global".


Linux
  1. Cara Mengelola Paket NodeJS Menggunakan Npm

  2. Cara menginstal React di Ubuntu 20.04

  3. Bagaimana Cara Menginstal Benang di Ubuntu 20.04?

  1. Cara Menginstal Paket Dari Repositori Tertentu Di Linux

  2. Cara menginstal paket perangkat lunak dengan playbook Ansible

  3. Cara menginstal npm di alpine linux

  1. Cara Menginstal Wiki.js di CentOS 7

  2. Cara menginstal Node.js &NPM di Debian 11

  3. Cara Menginstal Paket RPM Di Ubuntu