Request: Erro de compatibilidade do Webpack

Criado em 19 nov. 2015  ·  18Comentários  ·  Fonte: request/request

Estou usando o webpack para empacotar nosso código do lado do servidor. Quando troquei o pacote de solicitação de 2.65.0 para 2.67.0. Eu recebo este erro:

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

Comentários muito úteis

A solução alternativa mencionada por @manumax funcionou para mim sem precisar fazer o downgrade do módulo de solicitação para 2.65.0. ou seja

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

Todos 18 comentários

Também estou recebendo isso, esse problema não ocorre quando uso a versão 2.65.0 do request.

Parece que esse problema ocorreu antes com outros pacotes ao compilar com o webpack. Eles parecem ter corrigido alguns casos, mas aparentemente não o que está ocorrendo nesta nova versão do request, veja: https://github.com/webpack/webpack/issues/138

Não tenho certeza de qual é o problema em caso de solicitação e qual seria a solução apropriada.

Também estou tendo esse problema e é bastante frustrante ter uma versão menor quebrando nossas compilações.

Parece ser causado pela atualização da assinatura http de 0.11.x para 1.1.x, que é incompatível com o webpack. O módulo _root_ que se comporta mal sendo json-schema , que possui um teste AMD não tradicional: https://github.com/kriszyp/json-schema/issues/59

Para garantir a compatibilidade contínua com o webpack, sugiro voltar para 0.11.x para assinatura http.

Nossos testes do WebPack ainda não foram mesclados https://github.com/request/request/pull/1629 , portanto, se alguém de vocês quiser contribuir e corrigi-los, seria ótimo!

Tirando isso json-schema parece estar morto. Então vamos ver como vai. Atualmente, a solicitação também não é compatível com o semver, portanto, seria mais seguro manter uma versão fixa em seu package.json

@simov Não entendo muito bem o que o problema que você está fazendo referência (#1629 Webpack karma config) tem a ver com esse problema?

A configuração do Webpack karma tem a ver com o fato de que, se tivéssemos testes para o Wepack, poderíamos ter evitado esse bug.

Então, eu pensei que se você estiver usando webpack, então você pode querer contribuir para tornar seu suporte cidadão de primeira classe aqui.

@simov Vou tentar dar uma olhada nos testes do Webpack neste fim de semana.

Obrigado :+1:

Acabei de começar a trabalhar com javascript, então realmente espero ter feito tudo certo, caso me deixe agora. Espero ter conseguido fazer os testes do webpack funcionarem, resolvendo todos os problemas que impediam o @pho3nixf1re de concluir a solicitação de pull.

Não sei se isso pode ajudar de alguma forma, mas uma possível solução alternativa é explicada aqui: webpack/webpack#138, ou seja, para adicionar o seguinte à configuração do seu webpack:

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

Como dito antes, sou muito novo em javascript e não sei se isso tem alguma implicação, deixe-me saber o contrário.

Como solução alternativa, você pode usar a versão 2.65.0, onde o problema não ocorre.

Sim, acho que você está certo :) Para ser honesto, tentei reverter para 2.65.0, mas não consegui fazer funcionar, recebi exatamente o mesmo erro. Provavelmente eu fiz algo errado.

Fazer o downgrade para 2.65.0 não funcionou para mim, mas as etapas a seguir funcionaram:

  1. Fazendo downgrade manual do pacote http-signature para a versão 0.11.0
  2. Adicionada a seguinte configuração adicional ao meu arquivo webpack.config.js:
  node: {
    console: true,
    fs: 'empty',
    net: 'empty',
    tls: 'empty'
  }

$ npm install --save [email protected] consertou para mim. Estou usando request-promise e node 5.3.0/npm 3.3.12.

A solução alternativa mencionada por @manumax funcionou para mim sem precisar fazer o downgrade do módulo de solicitação para 2.65.0. ou seja

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

@singhshashi @theopak infelizmente nenhum deles funciona - rastreei o módulo incorreto e o excluí, corrigindo o problema. Ainda trabalhando em uma maneira de corrigi-lo no webpack (sou muito novo nisso).

request-promise usa a versão mais recente do pedido, ou seja "request": "^2.34"

aqui está o caminho:

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] corrigido para mim também.

Eu tenho esse problema ao usar o pacote google-spreadsheet , que usa request . Infelizmente, nenhuma das correções que as pessoas usaram nesta página funcionam. Se eu usar a correção noParse , recebo um novo erro: Invalid left-hand side in assignment neste código: __webpack_require__(643) = function(ids, factory) {

Este problema foi marcado automaticamente como obsoleto porque não teve atividade recente. Será fechado se não ocorrer mais nenhuma atividade. Obrigado por suas contribuições.

Esta página foi útil?
0 / 5 - 0 avaliações