Node-redis: Terjadi kesalahan saat membuat dengan webpack

Dibuat pada 28 Jul 2015  ·  8Komentar  ·  Sumber: NodeRedis/node-redis

Saya mendapatkan kesalahan berikut saat membangun dengan webpack:

ERROR in ./~/redis/lib/parser/hiredis.js
Module not found: Error: Cannot resolve module 'hiredis' in C:\NodeServer\AppInTheWild\node_modules\redis\lib\parser
 @ ./~/redis/lib/parser/hiredis.js 3:14-32

Saya tidak ingin memasang hiredis sebagai depency. Solusi apa yang saya miliki?

question

Komentar yang paling membantu

Memiliki kesalahan yang sama, dan membuatnya berfungsi dengan meminjam solusi dari sini .

Jadi potongan yang relevan di webpack.config.js terlihat seperti ini:

resolve: {
  alias: {
    'hiredis': path.join(__dirname, 'aliases/hiredis.js')
  }
}

Dan juga saya membuat file aliases/hiredis.js yang memiliki konten berikut:

export default null

Semua 8 komentar

Sepertinya webpack tidak mendeteksi bahwa hiredis adalah ketergantungan opsional node_redis.

Seperti apa konfigurasi webpack Anda? Saya menemukan artikel menarik yang menunjukkan bagaimana Anda seharusnya hanya mengemas kode Anda sendiri dan membiarkan apapun di node_modules apa adanya. Dengan cara ini Anda tidak menarik modul pihak ketiga dan memaketkannya ke dalam file build akhir Anda. Kecuali, tentu saja, Anda mencoba melakukan ini.

http://jlongster.com/Backend-Apps-with-Webpack--Part-I

Menutup ini karena tidak ada tanggapan lebih lanjut dan itu bukan masalah dengan node-redis

Saya memiliki masalah yang sama; webpack sepertinya hanya gagal dengan node_redis (saya berhasil menggunakan webpack untuk mengemas sisa backend saya menggunakan webpack-node-externals untuk melewati node_module deps).

~~~~
KESALAHAN di ./~/redis-commands/index.js
Modul tidak ditemukan: Kesalahan: Tidak dapat menyelesaikan 'file' atau 'direktori' ./commands di demo / node_modules / redis-commands
@ ./~/redis-commands/index.js 3: 15-36

KESALAHAN di ./~/redis-parser/lib/hiredis.js
Modul tidak ditemukan: Kesalahan: Tidak dapat menyelesaikan modul 'hiredis' di demo / node_modules / redis-parser / lib
@ ./~/redis-parser/lib/hiredis.js 3: 14-32
~~~~

@blainsmith konfigurasi saya di sini:

~~~~
const nodeExternals = membutuhkan ('webpack-node-externals');
module.exports = {
target: 'node',

externals: [nodeExternals ()],

menyelesaikan: {
ekstensi: ['', '.js'],
modulesDirectories: [
'node_modules'
]
},

modul: {
ResolLoader: {
root: path.join (__ dirname, 'node_modules')
},
pemuat: [
{
tes: /.json$/,
loader: 'json-loader'
},
{
tes: /.js$/,
kecualikan: [/ node_modules /],
loader: 'babel-loader'
},
]
},
});
~~~~

Mengalami hal yang sama di sini. Dependensi lain diselesaikan.

Skrip dev berfungsi, skrip build: dev gagal. Webpack.config.js yang sama.

Script

"dev": "DEBUG=* && webpack-dev-server --bail --config webpack.config.js --host 0.0.0.0",
"build:dev": "webpack --config webpack.config.js ",

Deps

"botkit-storage-redis": "1.1.0",

Kesalahan pembuatan

ERROR in ./~/redis-parser/lib/hiredis.js
Module not found: Error: Can't resolve 'hiredis' in '/path/to/node_modules/redis-parser/lib'
 @ ./~/redis-parser/lib/hiredis.js 3:14-32
 @ ./~/redis-parser/lib/parser.js
 @ ./~/redis-parser/index.js
 @ ./~/redis/index.js
 @ ./~/botkit-storage-redis/src/index.js
 @ ./~/botkit-storage-redis/index.js
 @ ./src/index.js

Memiliki kesalahan yang sama, dan membuatnya berfungsi dengan meminjam solusi dari sini .

Jadi potongan yang relevan di webpack.config.js terlihat seperti ini:

resolve: {
  alias: {
    'hiredis': path.join(__dirname, 'aliases/hiredis.js')
  }
}

Dan juga saya membuat file aliases/hiredis.js yang memiliki konten berikut:

export default null
yarn add hiredis
npm i --save hiredis

Solusi sederhana tanpa retasan

Melihat hiredis adalah ketergantungan opsional, dan saya tidak ingin menginstal dependensi yang tidak perlu, tetapi saya juga tidak ingin meretas alias, solusi paling sederhana adalah menggunakan webpack.IgnorePlugin ().

Tambahkan ke webpack.config.js

plugins: [
    new webpack.IgnorePlugin(/^hiredis$/)
  ],
Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

adamgajzlerowicz picture adamgajzlerowicz  ·  4Komentar

gpascale picture gpascale  ·  4Komentar

id0Sch picture id0Sch  ·  4Komentar

abhaygarg picture abhaygarg  ·  5Komentar

Stono picture Stono  ·  6Komentar