Saya menulis aplikasi node.js pertama saya, tetapi tidak dapat menemukan perpustakaan ekspres:
C:\ChatServer\Server>node server.js
module.js:340
throw err;
^
Error: Cannot find module 'express'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (C:\ChatServer\Server\server.js:6:9)
at Object.<anonymous> (C:\ChatServer\Server\server.js:25:4)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
Tetapi express tertuju (dengan -g
kunci):
C:\ChatServer\Server>npm install -g express
npm http GET https://registry.npmjs.org/express
npm http 304 https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/connect/2.7.11
npm http GET https://registry.npmjs.org/commander/0.6.1
npm http GET https://registry.npmjs.org/range-parser/0.0.4
npm http GET https://registry.npmjs.org/mkdirp/0.3.4
npm http GET https://registry.npmjs.org/cookie/0.1.0
npm http GET https://registry.npmjs.org/buffer-crc32/0.2.1
npm http GET https://registry.npmjs.org/fresh/0.1.0
npm http GET https://registry.npmjs.org/methods/0.0.1
npm http GET https://registry.npmjs.org/send/0.1.0
npm http GET https://registry.npmjs.org/cookie-signature/1.0.1
npm http GET https://registry.npmjs.org/debug
npm http 304 https://registry.npmjs.org/mkdirp/0.3.4
npm http 304 https://registry.npmjs.org/range-parser/0.0.4
npm http 304 https://registry.npmjs.org/cookie/0.1.0
npm http 304 https://registry.npmjs.org/connect/2.7.11
npm http 304 https://registry.npmjs.org/commander/0.6.1
npm WARN package.json range-parser@0.0.4 No repository field.
npm http 304 https://registry.npmjs.org/buffer-crc32/0.2.1
npm http 304 https://registry.npmjs.org/fresh/0.1.0
npm http 304 https://registry.npmjs.org/methods/0.0.1
npm http 304 https://registry.npmjs.org/send/0.1.0
npm http 304 https://registry.npmjs.org/cookie-signature/1.0.1
npm WARN package.json methods@0.0.1 No repository field.
npm WARN package.json methods@0.0.1 No readme data.
npm WARN package.json fresh@0.1.0 No repository field.
npm WARN package.json send@0.1.0 No repository field.
npm WARN package.json cookie-signature@1.0.1 No repository field.
npm http 304 https://registry.npmjs.org/debug
npm http GET https://registry.npmjs.org/mime/1.2.6
npm http GET https://registry.npmjs.org/qs/0.6.5
npm http GET https://registry.npmjs.org/send/0.1.1
npm http GET https://registry.npmjs.org/formidable/1.0.14
npm http GET https://registry.npmjs.org/cookie/0.0.5
npm http GET https://registry.npmjs.org/bytes/0.2.0
npm http GET https://registry.npmjs.org/pause/0.0.1
npm http 304 https://registry.npmjs.org/mime/1.2.6
npm http 304 https://registry.npmjs.org/bytes/0.2.0
npm WARN package.json bytes@0.2.0 No repository field.
npm http 304 https://registry.npmjs.org/pause/0.0.1
npm WARN package.json pause@0.0.1 No repository field.
npm http 304 https://registry.npmjs.org/formidable/1.0.14
npm http 304 https://registry.npmjs.org/qs/0.6.5
npm http 304 https://registry.npmjs.org/send/0.1.1
npm http 304 https://registry.npmjs.org/cookie/0.0.5
npm http GET https://registry.npmjs.org/mime
npm http 304 https://registry.npmjs.org/mime
C:\Users\Dmitry\AppData\Roaming\npm\express -> C:\Users\Dmitry\AppData\Roaming\npm\node_modules\express\bin\express
npm WARN package.json policyfile@0.0.4 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
npm WARN package.json assert-plus@0.1.2 No repository field.
npm WARN package.json ctype@0.5.2 No repository field.
express@3.2.6 C:\Users\Dmitry\AppData\Roaming\npm\node_modules\express
├── methods@0.0.1
├── fresh@0.1.0
├── range-parser@0.0.4
├── cookie-signature@1.0.1
├── buffer-crc32@0.2.1
├── cookie@0.1.0
├── debug@0.7.2
├── commander@0.6.1
├── mkdirp@0.3.4
├── send@0.1.0 (mime@1.2.6)
└── connect@2.7.11 (pause@0.0.1, qs@0.6.5, bytes@0.2.0, cookie@0.0.5, formidable@1.0.14, send@0.1.1)
Beberapa informasi:
C:\ChatServer\Server>npm --version
1.2.24
C:\ChatServer\Server>node --version
v0.10.9
C:\ChatServer\Server>npm --version
1.2.24
C:\ChatServer\Server>npm ls -g installed express
npm WARN package.json cookie-signature@1.0.1 No repository field.
npm WARN package.json fresh@0.1.0 No repository field.
npm WARN package.json methods@0.0.1 No repository field.
npm WARN package.json range-parser@0.0.4 No repository field.
npm WARN package.json send@0.1.0 No repository field.
npm WARN package.json policyfile@0.0.4 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
npm WARN package.json bytes@0.2.0 No repository field.
npm WARN package.json pause@0.0.1 No repository field.
npm WARN package.json assert-plus@0.1.2 No repository field.
npm WARN package.json ctype@0.5.2 No repository field.
C:\Users\Dmitry\AppData\Roaming\npm
└── express@3.2.6
C:\ChatServer\Server>npm ls installed express
C:\ChatServer\Server
└── (empty)
Bagaimana saya bisa menyelesaikan masalah ini? ( HARUS saya menginstalnya tanpa -g
?)
Jawaban:
Anda perlu menginstal Express secara lokal ke dalam konteks aplikasi (
node_modules
folder) Anda:Alasannya adalah aplikasi selalu mencari dalam konteks lokal mereka untuk setiap dependensi. Instalasi global hanya untuk mengatur binari yang tersedia di seluruh sistem, seperti unit test runner atau bootstrappers atau hal-hal seperti itu.
Dengan Express, saat Anda menginstalnya secara global, Anda mendapatkan
express
biner yang dapat mem-bootstrap aplikasi untuk Anda. Untuk informasi lebih lanjut, ketikkanJadi, untuk menjawab pertanyaan terakhir Anda: YA , Anda harus menginstalnya tanpa
-g
.sumber
winston
menginstal secara global, yang bekerja untuk beberapa alasan ketika memulai aplikasi saya sebagai pengguna normal, tetapi ketika memulai aplikasi saya dan skrip init sistem tidak berfungsi. Saya memperbaikinya dengan menginstal winston secara lokal di direktori aplikasi (dan menambahkannya ke package.json).Bagi saya itu berfungsi ketika diinstal mengekspresikan secara lokal dengan opsi --simpan sebagai berikut:
sumber
Periksa apakah Anda tidak menginstal
express
modul, gunakan perintah ini:dan jika
node_modules
direktori Anda berada di tempat lain, setelNODE_PATH
variabel envirnment:sumber
Golo telah menjelaskan dengan baik solusinya, tapi saya mungkin menambahkan klarifikasi:
kadang-kadang modul simpul diinstal
dan ketika Anda meluncurkan modul node blabla.js dicari
Jadi solusinya adalah membuat tautan simbolis:
sumber
Dalam kasus Anda,
express
modul Anda terpasang diC:\Users\Dmitry\AppData\Roaming\npm\node_modules\express
, tetapi Anda harus memasukkan modul ini ke direktori proyek Anda. Jadi, Anda harus menyalin file yangexpress
folder modul dariC:\Users\Dmitry\AppData\Roaming\npm\node_modules\
direktori proyek Anda sebagai:C:\ChatServer\Server\node_modules
. Jika Anda tidak memiliki folder bernama 'node_modules' di folder proyek Anda, maka buat terlebih dahulu dan tempel file-file itu ke folder ini. Metode ini bekerja untuk saya di pc windows saya. Mulai ulang server simpul Anda dan sekali lagi jalankan simpul perintahC:\ChatServer\Server>node server.js
. Itu seharusnya bekerja sekarang !!!!sumber
Pada OS berbasis Ubuntu Anda dapat mencoba
ini bekerja untuk saya di Mint
sumber
Mengingat Anda telah menginstal simpul pada sistem Anda, instal Express secara lokal untuk proyek Anda menggunakan yang berikut untuk Windows:
atau
Anda mungkin memberinya akses global dengan menggunakan:
sumber
Saya punya kesalahan ini dalam vscode, meskipun modul tempat diinstal. Saya menggunakan naskah dan express. Dalam
server.ts
file semua impor memiliki garis bawah berlekuk merah. Ternyata saya punyatsconfig.json
file yang salah .sumber
buat satu folder di harddisk Anda misalnya sample1 dan pergi ke command prompt ketik: cd dan berikan path folder sample1 dan kemudian instal semua modul ...
dan kemudian apa pun yang Anda buat simpan aplikasi dalam folder sample1
Cobalah...
sumber
buka direktori aplikasi Anda dan instal modul express menggunakan perintah di bawah ini dan instal express --save kemudian daftar semua menginstal modul menggunakan perintah di bawah ls NPM Anda akan melihat semua lokal menginstal modul tersebut.
sumber
menginstal express secara global tidak akan berfungsi pada proyek lokal Anda sehingga Anda harus menginstalnya secara lokal untuk digunakan.
Semoga ini berhasil
Terima kasih
sumber
Saya mengalami masalah yang sama. Saya telah menginstal secara global di / usr / local / bin /. Ketika saya melakukan 'npm install', express tidak dibuat di node_modules pada direktori lokal.
sumber
Ini bekerja untuk saya di MacOS X Sierra
sumber
Saya tidak bangga membagikan ini, tetapi dalam kasus saya, saya memiliki:
sumber
Saya memiliki kesalahan yang sama dengan mengikuti contoh di buku ini: "Kubernetes Up & Running".
Saya melihat banyak jawaban menyarankan untuk menginstal express "dengan tangan" tapi saya tidak yakin adalah solusi terbaik.
Karena kita menggunakan package.json (saya bisa melihatnya di log) dan cara yang tepat untuk membangun aplikasi sedang berjalan
npm install
, saya menambahkan dependensi ekspres dalam file package.json .Saya mendapatkan versi saat ini dengan
npm search express
.sumber