Instascan: ES6のインポートに失敗する

作成日 2017年07月20日  ·  5コメント  ·  ソース: schmich/instascan

ES6インポートステートメントimport InstaScan from 'instascan'を介してライブラリをインポートしようとしていますが、次のエラーがスローされます。

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

それは私のnpmセットアップがすべて再び台無しになっているだけですか、それともこのlibはそのように使用されることを意図していませんか?
おそらくこれはウェブパックが物事を台無しにしているだけです...

create-react-scriptsの1つを使用して単純なreactベースのアプリを再現するには、開発サーバーを起動し、そこからインポートまたは要求します。

Windows 101607ビルド14393.1480
Npm 5.03
npmモジュールfsは、プロジェクトのフォルダーにグローバルおよびローカルにインストールされます。

最も参考になるコメント

これをwebpack構成に追加します。

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

https://github.com/pugjs/pug-loader/issues/8#issuecomment-555685020のように

全てのコメント5件

私もreactでこの問題に遭遇しました。 instascan/src/zxing.js検索/置換を使用して、なんとか機能させることができました。 以下の2つのフレーズを見つけて、両方を空の文字列に置き換えます。

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

私は正直なところzxing.jsにあまり詳しくないので、なぜこれが機能するのかわかりません。

Webブラウザをターゲットにしたライブラリが「fs」を使用する必要がある理由はわかりませんが、これが問題であったことは間違いありません。
どうもありがとうございました!
このためのPRを作成するのは適切ですか、

残念ながら、このライブラリは私のwebpackビルドプロセスを壊します(上記と同じ問題)。 @rsheppのハックは

@axed PRできますか? それは素晴らしいことです:)

これをwebpack構成に追加します。

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

https://github.com/pugjs/pug-loader/issues/8#issuecomment-555685020のように

これをwebpack構成に追加します。

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

pugjs / pug-loader#8のように(コメント)

アルハムドゥリッラービサ:)

このページは役に立ちましたか?
0 / 5 - 0 評価