Saya menulis modul yang saya publikasikan ke npm beberapa saat yang lalu (https://npmjs.org/package/wisp)
Jadi itu menginstal dengan baik dari baris perintah:
$ npm i -g wisp
Namun, ketika saya menjalankannya dari baris perintah, saya terus mendapatkan kesalahan yang optimis tidak diinstal:
$ wisp
Error: Cannot find module 'optimist'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/usr/local/lib/node_modules/wisp/wisp:12:10)
at Object.<anonymous> (/usr/local/lib/node_modules/wisp/wisp:96:4)
at Module._compile (module.js:449:26)
at Object.exports.run (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:68:25)
at compileScript (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:135:29)
at fs.stat.notSources.(anonymous function) (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:110:18)
Namun, saya telah menentukan dalam package.json sebagai ketergantungan:
{
"name": "wisp",
"author": "Brendan Scarvell <[email protected]>",
"version": "0.1.0",
"description": "Global nodejs file server",
"dependencies": {
"optimist": "~0.3.4"
},
"repository": "git://github.com/tehlulz/wisp",
"bin": {
"wisp" : "./wisp"
}
}
Adakah yang tahu apa yang harus dilakukan untuk menjalankan ini? Saya tahu ini ada hubungannya dengan bagian bin menambahkan executable ke bin dan node_modules dalam direktori yang kosong. Tidak tahu bagaimana mengatasinya.
./node_modules/wisp/wisp
yang berfungsi dengan baik.Jawaban:
Untuk orang lain yang mengalami ini, saya punya masalah ini karena saya
npm
menginstal ke lokasi yang tidak ada di sayaNODE_PATH
.NODE_PATH saya kosong, dan menjalankan
npm install --global --verbose promised-io
menunjukkan bahwa itu menginstal ke/opt/lib/node_modules/promised-io
:Skrip saya gagal pada
require('promised-io/promise')
:Saya mungkin menginstal node dan npm dari sumber menggunakan
configure --prefix=/opt
. Saya tidak tahu mengapa ini membuat mereka tidak dapat menemukan modul yang diinstal. Perbaikan untuk saat ini adalah dengan mengarahkan NODE_PATH di direktori yang benar:require('promised-io/promise')
Sekarang saya berhasil.sumber
export NODE_PATH=...
mengaturnya di shell lokal sehingga diekspor ke perintah yang dijalankan di shell itu. Untuk membuat perubahan tetap ada atau tersedia untuk semua shell, letakkan di. Profil atau yang serupa. Konsep ini secara keseluruhan sangat rumit bagi pemula, coba baca help.ubuntu.com/community/EnvironmentVariables . Untuk Windows, Anda ingin beralih ke Linux. OK, hanya bercanda. Coba computerhope.com/issues/ch000549.htm atau cari di google.open -a TextEdit ~/.bash_profile
di Terminal, kemudian tambahkanexport NODE_PATH=/usr/local/lib/node_modules
ke akhir file. Nyalakan kembali jendela terminal. Sekarang menjalankanecho $NODE_PATH
harus mencetak/usr/local/lib/node_modules
.tambahkan ini ke awal prog (mac):
module.paths.push('/usr/local/lib/node_modules');
sumber
os.environ.nodepath
(sesuatu di sepanjang baris ini).Secara default node tidak mencari di dalam / usr / local / lib / node_module untuk memuat modul global. Lihat memuat modul dijelaskan di http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders
Jadi, Anda harus 1) menambahkan / usr / local / lib / node_module ke NODE_PATH dan ekspor atau 2) salin modul simpul yang diinstal ke / usr / local / lib / node. (Seperti yang dijelaskan dalam tautan untuk memuat modul modul akan mencari di jalur ini dan akan bekerja)
sumber
Untuk beberapa (seperti saya) yang tidak ada yang berhasil, coba ini:
Semoga ini bisa membantu seseorang :)
sumber
Perbaikan generik berikut akan untuk setiap modul. Misalnya dengan
request-promise
.Menggantikan
Dengan
bekerja ( sumber ) dan juga untuk
globals
daninherits
Juga, coba atur variabel lingkungan
sumber
Saya mendapat kesalahan modul "optimis" dan saya baru saja melakukan "npm install" untuk menyelesaikannya. melewati kesalahan itu.
https://github.com/mbloch/mapshaper/issues/12
sumber
$ vim /etc/profile.d/nodejs.sh
sumber
Untuk Windows, dari Nodejs tidak dapat menemukan modul yang diinstal pada Windows? apa yang berhasil untuk saya adalah menjalankan tautan npm seperti pada
sumber
npm install wisp --save
(tanpa opsi -g)Untuk Pengguna Mac Sebaiknya gunakan instalasi manual:
Referensi: https://docs.npmjs.com/getting-started/fixing-npm-permissions
sumber
Punya masalah yang sama pada salah satu server pengujian yang berjalan di
Ubuntu
bawahroot
. Kemudian menciptakan pengguna baru menggunakanuseradd -m myuser
dan diinstal semuanya (nvm
,node
, paket) sebagaimyuser
. Sekarang berfungsi dengan baik.sumber
Di windows jika Anda baru saja melakukan instalasi bersih dan Anda mendapatkan ini, Anda perlu membuang cache npm Anda di \ AppData \ Roaming
sumber
Dalam kasus saya keduanya
node
dannpm
berada di jalur yang sama (/usr/bin
). ItuNODE_PATH
kosong, sehingganpm
menempatkan modul global ke/usr/lib/node_modules
tempatrequire(...)
berhasil menemukannya. Satu-satunya pengecualian adalahnpm
modul, yang datang dengan paket nodejs. Karena saya menggunakan sistem 64 bit, itu dimasukkan ke dalam/usr/lib64/node_modules
. Ini bukan tempat yang membutuhkan (...) pencarian jika adaNODE_PATH
node kosong dan dimulai/usr/bin
. Jadi saya punya dua pilihan:/usr/lib64/node_modules/npm
ke/usr/lib/node_modules/npm
/usr/lib/node_modules/*
ke/usr/lib64/node_modules/
dan aturNODE_PATH=/usr/lib64/node_modules
Keduanya bekerja. Saya menggunakan OpenSUSE 42.1 dan paket nodejs dari pembaruan repositori. Versi 4.4.5.
sumber
Saya melakukan ini dengan cara sederhana ...
npm install --global --verbose protractor
Perbarui manajer driver web.
bekerja dengan baik untuk saya.
Semoga ini bisa membantu Anda ....
sumber
Saya mendapat kesalahan ini
Error: Cannot find module 'number-is-nan'
padahal modulnya benar-benar ada. Itu karena instalasi Node.js buruk / tidak lengkap.Untuk Windows, seperti yang disarankan oleh jawaban lain, Anda memerlukan instalasi Node yang bersih :
npm
dannpm_cache
masukC:\Users\user\AppData\Roaming
npm init
atau (npm init --yes
untuk konfigurasi default )NODE_PATH
. Jalur ini adalah tempat paket Anda diinstal. Mungkin seperti ituNODE_PATH = C:\Users\user\node_modules or C:\Users\user\AppData\Roaming\npm\node_modules
npm
akan berfungsi dengan baikCatatan :
Coba poin terakhir sebelum menginstal ulang Node.js, ini bisa menghemat waktu dan menghindari untuk menginstal ulang semua paket Anda.
sumber
Saya baru saja menemukan masalah pada
axios
modul ini. Kemudian saya mencoba ini: jalankanrm -rf node_modules
danyarn
. Dan itu berhasil.sumber
Saya memiliki kesalahan yang sama dengan OP, tetapi menggali log yang bisa saya lihat
sh: node: command not found
.Ternyata program / usr / bin / node (symlink) tidak lagi diinstal dengan
apt install nodejs
. Simpuled/usr/bin/node' to
nodejs,
npm install -g @ angular / cli` berhasil.Cara yang tepat untuk menginstal ini pada debian adalah
apt install nodejs-legacy
.sumber
Saya harus menambahkan C: \ Users \ {Username} \ AppData \ Roaming \ npm ke variabel env saya dan kemudian saya dapat menginstal barang.
sumber