Request: Kesalahan kompatibilitas paket web

Dibuat pada 19 Nov 2015  ·  18Komentar  ·  Sumber: request/request

Saya menggunakan webpack untuk mengemas kode sisi server kami. Ketika saya mengubah paket permintaan dari 2.65.0 menjadi 2.67.0. Saya mendapatkan kesalahan ini:

./web/dist/server.js:153022
    module.exports = function() { throw new Error("define cannot be used indirect"); };

Error: define cannot be used indirect

webpack:///(webpack)/buildin/amd-define.js?:1
module.exports = function() { throw new Error("define cannot be used indirect"); };
stale

Komentar yang paling membantu

Solusi yang disebutkan oleh @manumax bekerja untuk saya tanpa harus menurunkan modul permintaan ke 2.65.0. yaitu

module: {
    noParse: /node_modules\/json-schema\/lib\/validate\.js/
}

Semua 18 komentar

Saya juga mendapatkan ini, masalah ini tidak terjadi ketika saya menggunakan permintaan versi 2.65.0.

Sepertinya masalah ini pernah terjadi sebelumnya dengan paket lain saat dikompilasi dengan webpack. Mereka tampaknya telah memperbaiki beberapa kasus, tetapi tampaknya bukan yang terjadi dalam permintaan versi baru ini, lihat: https://github.com/webpack/webpack/issues/138

Tidak yakin apa masalahnya dalam hal permintaan, dan apa solusi yang tepat.

Saya juga mendapatkan masalah ini dan cukup membuat frustrasi karena versi minor merusak build kami.

Tampaknya disebabkan oleh peningkatan http-signature dari 0.11.x ke 1.1.x, yang tidak kompatibel dengan webpack. Modul _root_ yang berperilaku tidak semestinya adalah json-schema , yang memiliki tes AMD yang tidak tradisional: https://github.com/kriszyp/json-schema/issues/59

Untuk memastikan kompatibilitas yang berkelanjutan dengan webpack, saya sarankan untuk kembali ke 0.11.x untuk http-signature.

Tes WebPack kami belum digabungkan https://github.com/request/request/pull/1629 jadi jika ada di antara Anda yang ingin berkontribusi dan memperbaikinya, itu bagus!

Selain itu json-schema tampaknya sudah mati. Jadi mari kita lihat bagaimana kelanjutannya. Juga saat ini permintaan tidak sesuai dengan semver, jadi akan lebih aman bagi Anda untuk tetap menggunakan versi tetap di package.json Anda

@simov Saya tidak begitu mengerti apa masalah yang Anda rujuk (#1629 Webpack karma config) ada hubungannya dengan masalah ini?

Konfigurasi karma Webpack berkaitan dengan fakta bahwa jika kami memiliki tes untuk Wepack, kami dapat mencegah bug ini.

Jadi, saya pikir jika Anda menggunakan webpack, maka Anda mungkin ingin berkontribusi untuk membuat dukungannya menjadi warga negara kelas satu di sini.

@simov Saya akan mencoba mencoba tes Webpack akhir pekan ini.

Terima kasih :+1:

Saya baru saja mulai bekerja dengan javascript, jadi saya sangat berharap saya telah melakukan semuanya dengan benar, kalau-kalau biarkan saya sekarang. Mudah-mudahan saya berhasil menjalankan tes webpack, menyelesaikan semua masalah yang mencegah @pho3nixf1re untuk menyelesaikan permintaan tarik.

Saya tidak tahu apakah itu bisa membantu dengan cara apa pun, tetapi solusi yang mungkin dijelaskan di sini: webpack/webpack#138 yaitu menambahkan yang berikut ke konfigurasi webpack Anda:

module: {
    noParse: /node_modules\/json-schema\/lib\/validate\.js/
}

Seperti yang dinyatakan sebelumnya, saya cukup baru dalam javascript dan saya tidak tahu apakah itu memiliki implikasi, beri tahu saya sebaliknya.

Sebagai solusinya, saat ini Anda dapat menggunakan versi 2.65.0, di mana masalah tidak terjadi..

Ya, saya pikir Anda benar :) Sejujurnya saya mencoba untuk kembali ke 2.65.0 tapi saya tidak berhasil membuatnya bekerja, saya mendapat kesalahan yang sama persis. Mungkin aku melakukan sesuatu yang salah.

Menurunkan versi ke 2.65.0 tidak berhasil untuk saya, tetapi langkah-langkah berikut berhasil:

  1. Menurunkan versi paket http-signature secara manual ke versi 0.11.0
  2. Menambahkan konfigurasi tambahan berikut ke file webpack.config.js saya:
  node: {
    console: true,
    fs: 'empty',
    net: 'empty',
    tls: 'empty'
  }

$ npm install --save [email protected] memperbaikinya untuk saya. Saya menggunakan request-promise dan node 5.3.0 / npm 3.3.12.

Solusi yang disebutkan oleh @manumax bekerja untuk saya tanpa harus menurunkan modul permintaan ke 2.65.0. yaitu

module: {
    noParse: /node_modules\/json-schema\/lib\/validate\.js/
}

@singhshashi @theopak sayangnya tidak satu pun dari ini yang berfungsi - Saya telah melacak modul yang menyinggung dan telah menghapusnya, memperbaiki masalah. Masih mencari cara untuk memperbaikinya di webpack (saya sangat baru dalam hal ini).

request-promise menggunakan versi permintaan terbaru yaitu "request": "^2.34"

inilah jalannya:

node_modules\request-promise\node_modules\request\node_modules\http-signature\node_modules\jsprim\node_modules\json-schema\lib\validate.js

$ npm install --save [email protected] diperbaiki untuk saya juga.

Saya memiliki masalah ini saat menggunakan paket google-spreadsheet , yang menggunakan request . Sayangnya tidak ada perbaikan yang digunakan orang di halaman ini yang berfungsi. Jika saya menggunakan perbaikan noParse saya mendapatkan kesalahan baru: Invalid left-hand side in assignment pada kode ini: __webpack_require__(643) = function(ids, factory) {

Masalah ini secara otomatis ditandai sebagai basi karena tidak ada aktivitas terbaru. Ini akan ditutup jika tidak ada aktivitas lebih lanjut yang terjadi. Terima kasih atas kontribusi Anda.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat