Request: Webpack-Kompatibilitätsfehler

Erstellt am 19. Nov. 2015  ·  18Kommentare  ·  Quelle: request/request

Ich verwende Webpack, um unseren serverseitigen Code zu packen. Als ich das Anforderungspaket von 2.65.0 auf 2.67.0 hochgestuft habe. Ich bekomme diesen Fehler:

./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

Hilfreichster Kommentar

Die von @manumax erwähnte Problemumgehung hat bei mir funktioniert, ohne dass das Anforderungsmodul auf 2.65.0 heruntergestuft werden musste. dh

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

Alle 18 Kommentare

Ich bekomme das auch, dieses Problem tritt nicht auf, wenn ich Version 2.65.0 von request verwende.

Es sieht so aus, als ob dieses Problem bereits bei anderen Paketen beim Kompilieren mit Webpack aufgetreten ist. Sie scheinen einige Fälle behoben zu haben, aber anscheinend nicht den, der in dieser neuen Version der Anfrage auftritt, siehe: https://github.com/webpack/webpack/issues/138

Nicht sicher, was das Problem im Falle einer Anfrage ist und was die geeignete Lösung wäre.

Ich bekomme dieses Problem auch und es ist ziemlich frustrierend, dass eine Nebenversion unsere Builds beschädigt.

Es scheint durch ein Upgrade der http-Signatur von 0.11.x auf 1.1.x verursacht zu werden, das mit dem Webpack nicht kompatibel ist. Das _root_-Modul, das sich schlecht verhält, ist json-schema , das einen unkonventionellen AMD-Test hat: https://github.com/kriszyp/json-schema/issues/59

Um die Kompatibilität mit Webpack weiterhin sicherzustellen, würde ich vorschlagen, für die http-Signatur auf 0.11.x zurückzugreifen.

Unsere WebPack-Tests müssen noch zusammengeführt werden https://github.com/request/request/pull/1629 . Wenn also jemand von Ihnen beitragen und sie beheben möchte, wäre das großartig!

Abgesehen davon scheint json-schema tot zu sein. Mal sehen, wie es läuft. Außerdem ist die Anfrage derzeit nicht semver-konform, daher wäre es für Sie sicherer, sich an eine feste Version in Ihrer package.json zu halten

@simov Ich verstehe nicht ganz, was das Problem, auf das Sie sich beziehen (#1629 Webpack Karma Config), mit diesem Problem zu tun hat?

Webpack Karma Config hat damit zu tun, dass wir diesen Fehler hätten verhindern können, wenn wir Tests für Wepack gehabt hätten.

Also, ich denke, wenn Sie Webpack verwenden, möchten Sie vielleicht dazu beitragen, dass seine Unterstützung hier ein erstklassiger Bürger wird.

@simov Ich werde versuchen, dieses Wochenende die Webpack-Tests zu testen.

Danke :+1:

Ich habe gerade erst angefangen, mit Javascript zu arbeiten, also hoffe ich wirklich, dass ich alles richtig gemacht habe, falls Sie mich jetzt lassen. Ich habe es hoffentlich geschafft, Webpack-Tests zum Laufen zu bringen und alle Probleme zu lösen, die @pho3nixf1re daran gehindert haben, die Pull-Anforderung abzuschließen.

Ich weiß nicht, ob es in irgendeiner Weise helfen könnte, aber eine mögliche Problemumgehung wird hier erklärt: webpack/webpack#138, dh um Folgendes zu Ihrer Webpack-Konfiguration hinzuzufügen:

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

Wie bereits erwähnt, bin ich ziemlich neu in Javascript und ich weiß nicht, ob es irgendwelche Auswirkungen hat, lassen Sie es mich sonst wissen.

Als Workaround könnte man vorerst die Version 2.65.0 verwenden, wo das Problem nicht auftritt.

Ja, ich glaube, du hast Recht :) Um ehrlich zu sein, habe ich versucht, zu 2.65.0 zurückzukehren, aber ich habe es nicht geschafft, es zum Laufen zu bringen, ich habe genau den gleichen Fehler bekommen. Wahrscheinlich habe ich etwas falsch gemacht.

Ein Downgrade auf 2.65.0 hat bei mir nicht funktioniert, aber die folgenden Schritte haben funktioniert:

  1. Manuelles Herunterstufen des HTTP-Signaturpakets auf Version 0.11.0
  2. Folgende zusätzliche Konfiguration in meine webpack.config.js-Datei hinzugefügt:
  node: {
    console: true,
    fs: 'empty',
    net: 'empty',
    tls: 'empty'
  }

$ npm install --save [email protected] hat es für mich behoben. Ich verwende Request-Promise und Node 5.3.0 / npm 3.3.12.

Die von @manumax erwähnte Problemumgehung hat bei mir funktioniert, ohne dass das Anforderungsmodul auf 2.65.0 heruntergestuft werden musste. dh

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

@singhshashi @theopak leider funktioniert keines davon - ich habe das störende Modul verfolgt und gelöscht, um das Problem zu beheben. Ich arbeite immer noch an einer Möglichkeit, es im Webpack zu beheben (ich bin sehr neu darin).

Request-Promise verwendet die neueste Version von Request, dh "request": "^2.34"

hier ist der Pfad:

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] auch für mich behoben.

Ich habe dieses Problem, wenn ich das Paket google-spreadsheet verwende, das request verwendet. Leider funktioniert keine der Korrekturen, die Leute auf dieser Seite verwendet haben. Wenn ich den noParse -Fix verwende, erhalte ich einen neuen Fehler: Invalid left-hand side in assignment bei diesem Code: __webpack_require__(643) = function(ids, factory) {

Dieses Problem wurde automatisch als veraltet markiert, da es in letzter Zeit keine Aktivität gab. Es wird geschlossen, wenn keine weiteren Aktivitäten stattfinden. Vielen Dank für Ihre Beiträge.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen