Instascan: A importação ES6 falhou

Criado em 20 jul. 2017  ·  5Comentários  ·  Fonte: schmich/instascan

Estou tentando importar a biblioteca por meio de uma instrução de importação ES6 import InstaScan from 'instascan' , que gera o seguinte erro:

ERROR in ./node_modules/instascan/src/zxing.js
Module not found: Error: Can't resolve 'fs' in 'C:\projects\my_project\node_modules\instascan\src'
 @ ./node_modules/instascan/src/zxing.js 4:725-738 4:313578-313591
 @ ./node_modules/instascan/src/scanner.js
 @ ./node_modules/instascan/index.js
 @ ./src/components/qrcode-scanner.component.js
 @ ./stories/qrcode-scanner.component.story.js
 @ ./stories/index.js
 @ ./.storybook/config.js

É apenas a configuração do meu npm que está bagunçada de novo, ou esta lib não se destina a ser usada dessa forma?
Provavelmente isso é apenas um webpack bagunçando as coisas ...

Para reproduzir, criar um aplicativo baseado em reação simples com um dos scripts criar-reagir, inicie o servidor de desenvolvimento e tente importar e / ou solicitá-lo de lá.

Windows 10 1607 compilação 14393.1480
Npm 5.03
O módulo npm fs é instalado global e localmente na pasta do projeto.

Comentários muito úteis

adicione isso à configuração do seu webpack:

module.exports = {
  node: {
    fs: "empty"
  },
  entry: {
    app: [
      './src/main.js'
    ]
  },
...

Como em https://github.com/pugjs/pug-loader/issues/8#issuecomment -55568520

Todos 5 comentários

Eu também encontrei esse problema em reagir. Consegui fazê-lo funcionar usando localizar / substituir em instascan/src/zxing.js . Encontre as 2 frases abaixo e substitua ambas por strings vazias.

var fs=require("fs");
var nodeFS=require("fs");

Sinceramente, não estou muito familiarizado com zxing.js, então não sei por que isso funciona.

Não sei por que as bibliotecas direcionadas ao webbrowser devem fazer uso de 'fs', mas você está absolutamente certo de que esse era o problema!
Muito obrigado por isso!
É apropriado fazer um PR para isso ou @schmich levará isso em consideração?

Infelizmente, esta biblioteca quebra meu processo de construção do webpack (mesmo problema acima). O hack do @rshepp funciona, mas é muito impraticável ao trabalhar com várias pessoas em um projeto.

@axed Você pode fazer um PR? Isso seria bom :)

adicione isso à configuração do seu webpack:

module.exports = {
  node: {
    fs: "empty"
  },
  entry: {
    app: [
      './src/main.js'
    ]
  },
...

Como em https://github.com/pugjs/pug-loader/issues/8#issuecomment -55568520

adicione isso à configuração do seu webpack:

module.exports = {
  node: {
    fs: "empty"
  },
  entry: {
    app: [
      './src/main.js'
    ]
  },
...

Como em pugjs / pug-loader # 8 (comentário)

alhamdulillah bisa :)

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

Questões relacionadas

AL-Kateb picture AL-Kateb  ·  8Comentários

deadmanwalking74 picture deadmanwalking74  ·  7Comentários

marvinex123 picture marvinex123  ·  11Comentários

harshad5498 picture harshad5498  ·  7Comentários

igun997 picture igun997  ·  4Comentários