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.
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' ] }, ...
alhamdulillah bisa :)
Comentários muito úteis
adicione isso à configuração do seu webpack:
Como em https://github.com/pugjs/pug-loader/issues/8#issuecomment -55568520