Bagaimana cara saya menginstal modul secara global menggunakan npm?

202

Saya baru saja menginstal modul Node.js dan npm di OSX dan saya punya masalah dengan pengaturan yang saya pikir:

npm install [MODULE] is not installing the node.js module to the default path 
which is /usr/local/lib/node_modules.
Cristian
sumber

Jawaban:

347

Jika Anda ingin memasang modul npm secara global, pastikan untuk menggunakan -gflag baru , misalnya:

npm install forever -g

Rekomendasi umum tentang pemasangan modul npm sejak 1.0rc (diambil dari blog.nodejs.org ):

  • Jika Anda menginstal sesuatu yang ingin Anda gunakan dalam program Anda, menggunakan memerlukan ('apa pun'), kemudian instal secara lokal , di root proyek Anda.
  • Jika Anda menginstal sesuatu yang ingin Anda gunakan di shell Anda, pada baris perintah atau sesuatu, instal secara global , sehingga binernya berakhir di variabel lingkungan PATH Anda.

Saya baru-baru ini menggunakan rekomendasi ini dan turun cukup lancar. Saya menginstal selamanya secara global (karena ini adalah alat baris perintah) dan semua modul aplikasi saya secara lokal.

Namun, jika Anda ingin menggunakan beberapa modul secara global (yaitu express atau mongodb), ikuti saran ini (juga diambil dari blog.nodejs.org ):

Tentu saja, ada beberapa kasus di mana Anda ingin melakukan keduanya. Coffee-script dan Express keduanya adalah contoh aplikasi yang baik yang memiliki antarmuka baris perintah, serta perpustakaan. Dalam kasus tersebut, Anda dapat melakukan salah satu dari yang berikut:

  • Pasang di kedua tempat . Serius, apakah Anda kekurangan ruang disk? Tidak apa-apa, sungguh. Itu adalah program JavaScript kecil.
  • Instal secara global, dan kemudian npm link coffee-script atau npm link express (jika Anda menggunakan platform yang mendukung tautan simbolik). Maka Anda hanya perlu memperbarui salinan global untuk memperbarui semua symlink juga.

Opsi pertama adalah yang terbaik menurut saya. Sederhana, jelas, eksplisit. Yang kedua sangat berguna jika Anda akan menggunakan kembali perpustakaan yang sama di banyak proyek yang berbeda. (Lebih lanjut tentang tautan npm dalam angsuran di masa mendatang.)

Saya tidak menguji salah satu variasi itu, tetapi tampaknya cukup mudah.

schaermu
sumber
7
Terima kasih atas klarifikasi. Isaacs harus mengganti seluruh npm manfile dan git wiki dengan teks di atas. Bisa menjernihkan kebingungan massa.
Mauvis Ledford
shweeet. Ini berguna, saya terperangkap oleh perubahan ini. Pada beberapa titik npm install memberi akses baris perintah lalu menghilang dan saya tidak mengikuti proyek cukup dekat untuk menangkap transisi.
Mark Essel
Ini menjelaskan mengapa saya memiliki modul simpul di direktori konfigurasi Apache saya. . .
Ian Hunter
1
Dari blog.node.js.org : Biasanya binari global dipasang di {awalan} / bin dan modul global dipasang di {awalan} / node_modules dan modul lokal ada di ./node_modules, executable masuk ./node_modules/.bin/ . Anda dapat menjalankan npm prefixuntuk mendapatkan awalan lokal, dan node prefix -guntuk melihat awalan global :)
nacho4d
"Jika Anda menginstal sesuatu yang ingin Anda gunakan dalam program Anda, menggunakan memerlukan ('apa pun'), kemudian instal secara lokal , di root proyek Anda." - Saya pikir, itu bukan ide yang baik jika modul berisi binary yang dikompilasi: harus dikompilasi ulang di linux dan windows dengan benar. Saya pikir modul semacam itu harus diatur menggunakan lingkungan NODE_PATH vriable ( nodejs.org/api/… )
Sneg
8

Pada Mac, saya menemukan output berisi informasi yang saya cari:

$> npm install -g karma
...
...
> ws@0.4.25 install /usr/local/share/npm/lib/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
> (node-gyp rebuild 2> builderror.log) || (exit 0)
...
$> ls /usr/local/share/npm/bin
karma nf

Setelah menambahkan /usr/local/share/npm/binke export PATHbaris di saya .bash_profile, menyimpannya, dan sourcememasangnya, saya bisa menjalankannya

$> karma --help

biasanya.

Droogan
sumber
4

Saya suka menggunakan file package.json di root folder aplikasi Anda.

Inilah yang saya gunakan

nvm use v0.6.4

http://pastie.org/3232212

npm install
fullstacklife
sumber
2

Saya memiliki masalah dalam menginstal Express di Ubuntu:

Jika karena alasan tertentu perintah NPM tidak ada, uji perintah npm dengan npm help. Jika tidak ada, ikuti langkah-langkah ini - http://arnolog.net/post/8424207595/installing-node-js-npm-express-mongoose-on-ubuntu

Jika hanya perintah Express tidak berfungsi, coba:

sudo npm install -g express

Ini membuat semuanya berfungsi seperti biasa dengan Windows7 dan OSX.

Semoga ini membantu!

Cody
sumber
1

Anda harus memiliki hak pengguna super,

 sudo npm install -g <package name>
Saurav Kumar
sumber
-1

Di Ubuntu, setel path node_modules dalam file .bashrc

export PATH = "/ home / username / node_modules / .bin: $ PATH"

Ratnesh Kushwaha
sumber
-5

Anda mungkin tidak memiliki izin menulis untuk menginstal modul node di lokasi global seperti /usr/local/lib/node_modules, dalam hal ini jalankan paket npm install -g sebagai root.

Dmitri Bouianov
sumber