Setelah menarik modul dari GitHub dan mengikuti instruksi untuk membuatnya, saya mencoba menariknya ke dalam proyek yang sudah ada menggunakan:
> npm install ../faye
Ini tampaknya berhasil:
> npm list
/home/dave/src/server
└─┬ faye@0.7.1
├── cookiejar@1.3.0
├── hiredis@0.1.13
└── redis@0.7.1
Tetapi Node.js tidak dapat menemukan modul:
> node app.js
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
Error: Cannot find module 'faye'
at Function._resolveFilename (module.js:334:11)
at Function._load (module.js:279:25)
at Module.require (module.js:357:17)
at require (module.js:368:17)
at Object.<anonymous> (/home/dave/src/server/app.js:2:12)
at Module._compile (module.js:432:26)
at Object..js (module.js:450:10)
at Module.load (module.js:351:31)
at Function._load (module.js:310:12)
at Array.0 (module.js:470:10)
Saya benar-benar ingin memahami apa yang sedang terjadi di sini, tetapi saya agak bingung ke mana harus mencari berikutnya. Ada saran?
node_modules
direktori diharapkan di root proyek Anda, alongisdeapp.js
dalam kasus Anda. Mengapa Anda menggunakan..
jalur instal npm?Jawaban:
Menggunakan
npm install
instal modul ke direktori saat ini saja (dalam subdirektori disebutnode_modules
). Apakah app.js berada di bawahhome/dave/src/server/
? Jika tidak dan Anda ingin menggunakan modul dari direktori mana pun, Anda harus menginstalnya secara globalnpm install -g
.Saya biasanya menginstal sebagian besar paket secara lokal sehingga mereka diperiksa bersama dengan kode proyek saya.
Pembaruan (8/2019):
Saat ini Anda dapat menggunakan file package-lock.json , yang secara otomatis dihasilkan ketika npm memodifikasi direktori node_modules Anda. Karena itu Anda dapat meninggalkan memeriksa paket, karena
package-lock.json
melacak versi yang tepat dari node_modules Anda, saat ini Anda gunakan. Untuk menginstal paket daripackage-lock.json
alih-alihpackage.json
menggunakan perintahnpm ci
.Pembaruan (3/2016):
Saya telah menerima banyak kritik atas tanggapan saya, khususnya yang saya periksa dalam paket yang bergantung pada kode saya. Beberapa hari yang lalu, seseorang tidak menerbitkan semua paket mereka ( https://kodfabrik.com/journal/i-ve-just-liberated-my-modules ) yang melanggar React, Babel, dan hampir semua hal lainnya. Mudah-mudahan sudah jelas sekarang bahwa jika Anda memiliki kode produksi, Anda tidak dapat mengandalkan NPM untuk mempertahankan dependensi Anda.
sumber
package.json
daftar modul npm yang Anda andalkan dan abaikannode_modules
folder tersebut. Maka cukupnpm install
untuk mendapatkan pengaturan setelah Anda mengkloning repo.package.json
daftar dependensi, saya ingin menyimpan salinan yang baik dari hal-hal yang saya andalkan. Ruang disk murah dan jika npm atau paket menghilang dari npm, saya masih memiliki proyek yang berfungsi penuh di repo saya.Saya memiliki masalah yang sangat mirip. Menghapus seluruh
node_modules
folder dan menginstal ulang berfungsi untuk saya:sumber
npm install
/npm update
tidak akan memecahkan. Ini memecahkan masalah di manaError: Cannot find module 'http-errors'
mulai muncul secara acak ketika saya mencoba menjalankan aplikasi Express saya.npm install
.Misalnya, jika kesalahannya adalah:
maka Anda dapat mengatasi masalah ini dengan menjalankan perintah
npm install --save form-data
.sumber
ng new project-name
menunjukkan beberapa modul yang hilang ... Saya harus menginstalnya masing-masing menggunakan perintah yang diberikan. Kemudian ia menyelesaikan masalah tetapi ada satu perintah untuk menginstal semuanya sekaligus?Untuk pengguna TypeScript, jika Anda mengimpor modul Node internal (seperti
http
,path
atauurl
) dan Anda mendapatkan kesalahan seperti itu"Cannot find module "x"
maka kesalahan tersebut dapat diperbaiki dengan menjalankanPerintah akan mengimpor definisi NodeJS TypeScript ke proyek Anda, memungkinkan Anda untuk menggunakan modul bawaan NodeJS.
sumber
Ini terjadi ketika instalasi npm pertama telah macet karena beberapa alasan (SIGINT dari npm), atau penundaannya terlalu lama, atau data rusak. Mencoba menginstal npm lagi tidak akan menyelamatkan masalah.
Ada yang salah pada pemeriksaan npm pertama, jadi pilihan terbaik adalah menghapus file dan memulai ulang instalasi npm.
sumber
npm cache clear
dan menghapus node_modules diikuti olehnpm install
untuk memperbaiki masalah saya.Jika Anda menggunakan nvm, periksa apakah node_modules yang ada yang mengikat ke perpustakaan lain dikompilasi untuk versi Node.js yang benar.
Saya mengalami kesalahan yang sama. Alasannya adalah sebagai berikut: Kami menggunakan nvm karena kami menjalankan dua aplikasi di server, satu memerlukan Node.js 5.6 karena menggunakan node-gd (yang tidak berjalan pada Node.js 6 untuk saat ini), yang lain memerlukan Node.js 6. Node.js 6 adalah instalasi apt-get .
Kami juga menggunakan alat PM2 untuk digunakan.
Jadi, pengaturan defaultnya adalah bahwa proses pm2 dimulai ketika nvm tidak berlaku, sehingga ia menggunakan instalasi apt-get dari Node.js (versi 6). Jadi daemon pm2 utama dimulai dengan Node.js 6. Jika saya menjalankan aplikasi dalam mode fork, mereka mulai dalam proses terpisah dan pengaturan nvm berlaku. Ketika saya menjalankan aplikasi dalam mode cluster - mereka mewarisi lingkungan non-nvm.
Jadi ketika saya mencoba untuk beralih ke mode cluster aplikasi gagal untuk memulai karena binding yang dikompilasi untuk 5.6 gagal dengan pesan ini.
Saya telah memperbaikinya dengan me-restart pm2 ketika pengaturan nvm berlaku. Skrip startup juga harus diperbaiki.
sumber
Periksa apakah variabel lingkungan NODE_PATH diatur dengan benar dan menunjuk ke jalur node_modules. nodejs menggunakan variabel ini untuk mencari perpustakaan
sumber
Saya mengalami kesalahan ini kemarin. Butuh beberapa saat untuk menyadari bahwa
main
entri masukpackage.json
menunjuk ke file yang saya pindah. Setelah saya perbarui kesalahan itu hilang dan paketnya berfungsi.sumber
main
entri untuk submodule saya di direktori yang dikecualikan dari repositori sehingga ketika saya mencoba untuk memasukkannya melaluinpm install
itu berfungsi, tetapi tidak ada ekspor yang ditemukan ketika diperlukan di! Terima kasih banyak atas jawaban yang jelas namun bermanfaat ini.Hapus
node_module
folder root Anda dari proyek Anda (misalnya:)myApp
. Pergi kemyApp
folder dan kemudian ketik perintah di bawah ini dari terminalIni akan menginstal semua modul dependensi yang diperlukan untuk proyek Anda.
sumber
Kesalahan ini dapat ditemui jika Anda
require
menggunakan modul yang memiliki bidang yang hilang atau salahmain
dalam package.json. Meskipun modul itu sendiri diinstal, npm / node harus menggunakan file .js tunggal sebagai titik masuk ke modul Anda. Jikamain
bidang tidak ada di sana, defaultnya adalah mencariindex.js
di folder modul Anda. Jika file utama modul Anda tidak disebut index.js, itu tidak akan bisarequire
.Ditemukan saat mengubah
browserify
modul berbasis-modul menjadirequire
modul CommonJS;browserify
tidak peduli denganmain
bidang yang hilang , dan kesalahannya tidak diperhatikan.sumber
Tentukan path ke folder restler, yang akan berada di dalam folder node_modules seperti: var rest = require ('./ node_modules / restler');
Ini berhasil untuk saya.
sumber
Jika Anda menggunakan naskah dan mendapatkan kesalahan setelah menginstal semua modul simpul kemudian hapus
package-lock.json
. Dan kemudian jalankannpm install
.sumber
TIP PRO:
Kesalahan ini terjadi pada saya, saat berjuang melawan kelelahan dan penyakit ringan, karena saya mengetik
node blah
bukannpm blah
.Pesan kesalahan yang diterima tidak cukup marah untuk mengingatkan saya pada kebodohan saya sendiri!
sumber
Saya menghadapi masalah yang sama ketika orang lain dalam tim memperbarui
package.json
di SVN. Hanya menghapusnode_modules
direktori tidak membantu. Bagaimana saya memecahkan masalahnya adalah:Semoga ini bisa membantu seseorang!
sumber
npm install
semuanya dengan baik lagi.package.json
bagaimana NPM tahu apa yang harus dipasang?Saya dapat menambahkan satu tempat lagi untuk memeriksa; paket yang saya coba gunakan adalah satu lagi paket saya sendiri yang telah saya publikasikan ke repo NPM pribadi. Saya lupa mengkonfigurasi properti 'utama' di package.json dengan benar. Jadi, paket itu ada di folder node_modules dari paket yang dikonsumsi, tetapi saya mendapatkan "tidak dapat menemukan modul". Butuh waktu beberapa menit untuk menyadari kesalahan saya. :-(
sumber
Dalam kasus saya, saya telah
UNMET PEER DEPENDENCY redux@^3.0.0
menyebabkan pesan kesalahan ini, lihat semuanya dan pasang kembali modul yang hilang menggunakan --savesumber
Menghapus node / npm dan menginstal ulang versi stabil (bukan yang terbaru) bekerja untuk saya.
sumber
Di Appsome Solutions, kami memiliki masalah yang sama dengan config proyek naskah dan ditambahkan
"moduleResolution": "node",
di tsconfig.json menyelesaikannya.sumber
Saya mencoba untuk mempublikasikan paket saya sendiri dan kemudian memasukkannya ke dalam proyek lain. Saya punya masalah itu karena bagaimana saya membangun modul pertama. Saya menggunakan ekspor ES2015 untuk membuat modul, misalkan katakanlah modulnya terlihat seperti itu:
Setelah dikompilasi dengan Babel dan sebelum dipublikasikan:
Jadi setelah
npm install module-name
di proyek lain (tidak ada ES2015) yang harus saya lakukanvar hello = require('module-name').default;
Untuk benar-benar mendapatkan paket yang diimpor.
Semoga itu bisa membantu!
sumber
Menemukan masalah ini saat menggunakan
webpack
denganwebpack-dev-middleware
.Telah mengubah satu file menjadi folder .
Pengamat sepertinya tidak melihat folder baru dan modul itu sekarang hilang.
Diperbaiki dengan memulai kembali proses.
sumber
Baru saja menemukan skenario yang tidak biasa yang mungkin berguna bagi seseorang dan semacam ikan haring merah.
Saya juga mendapatkan kesalahan Modul Tidak Dapat Menemukan tetapi anehnya semuanya bekerja dengan baik di lingkungan Node.js lokal saya (Mac yang dihosting). Masalah ini hanya muncul ketika kode digunakan di server Linux kami.
Yah ... itu ternyata salah ketik yang (tampaknya) instalasi Node.js berbasis Mac sangat senang diabaikan.
Termasuk tampak seperti ini:
Tetapi file yang sebenarnya disebut "s3Uploader.class.js"
Perhatikan perbedaan casing di 's' vs 'S' antara kode dan nama file.
Jadi - dalam kemungkinan aneh bahwa tidak ada solusi lain di sini yang menyelesaikan masalah Anda, periksa tiga kali lipat bahwa Anda tidak salah memasukkan karakter dalam nama file Anda yang disertakan! :)
dan DUH!
sumber
Mungkin seperti saya Anda mengatur 'view engine' secara ekspres ke mesin yang tidak ada, atau mencoba menggunakan mesin templating yang tidak terdaftar. Pastikan Anda menggunakan:
app.engine('engine name',engine) app.set('view engine','engine name')
sumber
Silakan instal CLI v3 baru (npm install -g ionic @ latest).
Jika masalah ini masih menjadi masalah di CLI v3. Terima kasih!
sumber
Jika paket berhasil diinstal pergi ke folder node_modules Anda kemudian periksa file dan path. Kemudian impor. Semoga ini membantu.
sumber
Pertama-tama, ya, sebagian dari jawaban saya pasti sangat membantu untuk menyelesaikan kesalahan yang diposting oleh OP. Kedua, setelah mencoba langkah di bawah ini, saya menghadapi beberapa kesalahan lain, dan karenanya, telah menulis solusi untuk itu juga.
(Psst! Saya tidak yakin apakah saya telah berhasil membantu menyelesaikan kesalahan di atas, atau jika saya telah melanggar beberapa aturan atau format jawaban, tetapi saya menghadapi kesalahan di atas dan beberapa yang lain dan butuh banyak waktu bagi saya untuk menemukan solusi yang tepat untuk kesalahan-kesalahan itu. Saya sedang menulis solusi lengkap karena kalau-kalau ada orang lain yang juga menghadapi kesalahan ini, semoga dia akan mendapatkan solusi di sini.)
Jadi menambahkan, dan menguraikan jawaban yang diberikan oleh PrashanthiDevi , dan juga menambahkan pengalaman pribadi saya, ini dia:
Saya baru di seluruh bagian e2e dan unit test. Saya mulai melihat bagian ini dari busur derajat . Sekarang saya sudah memiliki file di mana tes ditulis, tetapi saya harus menjalankan tes.
Saya telah menginstal semua perangkat lunak dan alat yang diperlukan, tetapi ketika saya awalnya menjalankan kode untuk menjalankan tes
gulp itest
, saya mendapatkan kesalahan 'Tidak dapat menemukan modul' ini . Setelah melalui berbagai pertanyaan tentang SO, saya menemukan satu jawaban yang saya pikir dapat membantu mendapatkan solusi.Orang itu menyarankan untuk menjalankan perintah
npm install
di folder proyek saya.The alasan untuk melakukan ini adalah untuk memperbarui simpul-modul folder, di dalam folder proyek kami, dengan semua file dan dependensi yang diperlukan dan yang diperlukan.
(Bagian di bawah ini mungkin tidak relevan dengan pertanyaan ini, tetapi mungkin bermanfaat jika ada yang menemukan situasi yang sama yang saya hadapi.)
Langkah di atas pasti memecahkan kesalahan saya sebelumnya, tetapi melemparkan yang baru! Kali ini kesalahannya adalah
Could not find chromedriver at '..\node_modules\protractor\selenium\chromedriver'
.Namun, solusi dari kesalahan ini cukup konyol (dan lucu) bagi saya. Saya sudah punya file chromedriver di folder selenium saya . Tapi, ternyata kesalahan di atas datang karena file chromedriver saya ada di dalam folder selenium dan tidak di dalam folder chromedriver . Jadi, membuat folder chromedriver dan menyalin file chromedriver di sana memecahkan masalah saya!
Juga, untuk kesalahan: Habis menunggu Server WebDriver , Anda bisa menambahkan baris kode ini ke file conf.js di dalam
exports.config{}
:seleniumAddress: 'http://localhost:8080/'
Semoga ini membantu!
sumber
Saya mendapat solusi sederhana untuk menyelesaikan masalah ini.
Hapus saja C: \ Users \ UserName \ AppData \ Roaming \ npm \
dan kemudian instal node.
Sekarang masalah Anda akan terpecahkan.
sumber
Jalankan hanya perintah berikut:
Ini akan menginstal semua modul yang diperlukan dalam
node_modules
folder.sumber
itu bekerja untuk saya.
sumber
Ubah direktori dan arahkan ke folder proyek Anda saat ini dan kemudian "npm install". .
Ini akan menginstal semua dependensi dan modul ke folder proyek Anda.
sumber
npm install
di direktori yang benar. Tidak ada yang negatif tentang hal itu