Request: Error de compatibilidad del paquete web

Creado en 19 nov. 2015  ·  18Comentarios  ·  Fuente: request/request

Estoy usando webpack para empaquetar nuestro código del lado del servidor. Cuando pasé el paquete de solicitud de 2.65.0 a 2.67.0. me sale este error:

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

Comentario más útil

La solución alternativa mencionada por @manumax funcionó para mí sin tener que degradar el módulo de solicitud a 2.65.0. es decir

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

Todos 18 comentarios

También recibo esto, este problema no ocurre cuando uso la versión 2.65.0 de request.

Parece que este problema ocurrió antes con otros paquetes al compilar con webpack. Parece que han solucionado algunos casos, pero aparentemente no el que está ocurriendo en esta nueva versión de la solicitud, consulte: https://github.com/webpack/webpack/issues/138

No estoy seguro de cuál es el problema en caso de solicitud y cuál sería la solución adecuada.

También tengo este problema y es bastante frustrante que una versión menor rompa nuestras compilaciones.

Parece ser causado por la actualización de la firma http de 0.11.x a 1.1.x, que es incompatible con el paquete web. El módulo _root_ que se comporta mal es json-schema , que tiene una prueba AMD no tradicional: https://github.com/kriszyp/json-schema/issues/59

Para garantizar la compatibilidad continua con el paquete web, sugeriría volver a 0.11.x para la firma http.

Nuestras pruebas de WebPack aún no se han fusionado https://github.com/request/request/pull/1629 , por lo que si alguno de ustedes quiere contribuir y corregirlas, ¡sería genial!

Aparte de eso json-schema parece estar muerto. Así que vamos a ver cómo va. Además, actualmente la solicitud no es compatible con semver, por lo que sería más seguro para usted ceñirse a una versión fija en su paquete.json

@simov No entiendo muy bien qué tiene que ver el problema al que hace referencia (# 1629 Webpack karma config) con este problema.

La configuración de karma de Webpack tiene que ver con el hecho de que si tuviéramos pruebas para Wepack, podríamos haber evitado este error.

Entonces, pensé que si está utilizando un paquete web, es posible que desee contribuir para que su soporte sea ciudadano de primera clase aquí.

@simov Intentaré intentarlo en las pruebas de Webpack este fin de semana.

Gracias :+1:

Recién comencé a trabajar con javascript, así que realmente espero haber hecho todo bien, por si acaso déjame ahora. Con suerte logré que las pruebas del paquete web funcionaran, resolviendo todos los problemas que impedían que @pho3nixf1re completara la solicitud de extracción.

No sé si podría ayudar de alguna manera, pero aquí se explica una posible solución alternativa: webpack/webpack#138, es decir, para agregar lo siguiente a la configuración de su paquete web:

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

Como dije antes, soy bastante nuevo en javascript y no sé si tiene alguna implicación, avíseme de lo contrario.

Como solución, por ahora podría usar la versión 2.65.0, donde el problema no ocurre.

Sí, creo que tienes razón :) Para ser honesto, traté de volver a 2.65.0 pero no logré hacerlo funcionar, obtuve exactamente el mismo error. Probablemente hice algo mal.

Bajar de categoría a 2.65.0 no funcionó para mí, pero los siguientes pasos sí:

  1. Desactualización manual del paquete de firma http a la versión 0.11.0
  2. Agregué la siguiente configuración adicional en mi archivo webpack.config.js:
  node: {
    console: true,
    fs: 'empty',
    net: 'empty',
    tls: 'empty'
  }

$ npm install --save [email protected] me lo arregló. Estoy usando request-promise y node 5.3.0 / npm 3.3.12.

La solución alternativa mencionada por @manumax funcionó para mí sin tener que degradar el módulo de solicitud a 2.65.0. es decir

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

@singhshashi @theopak desafortunadamente ninguno de estos funciona: rastreé el módulo ofensivo y lo eliminé, solucionando el problema. Todavía estoy trabajando en una forma de solucionarlo en el paquete web (soy muy nuevo en esto).

request-promise usa la versión más reciente de request, es decir "request": "^2.34"

aquí está el camino:

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] arreglado para mí también.

Tengo este problema cuando uso el paquete google-spreadsheet , que usa request . Desafortunadamente, ninguna de las correcciones que la gente ha usado en esta página funciona. Si utilizo la solución noParse , aparece un nuevo error: Invalid left-hand side in assignment en este código: __webpack_require__(643) = function(ids, factory) {

Este problema se ha marcado automáticamente como obsoleto porque no ha tenido actividad reciente. Se cerrará si no se produce más actividad. Gracias por sus aportaciones.

¿Fue útil esta página
0 / 5 - 0 calificaciones