2017-05-02 24 views
0

私は非常に奇妙な問題を扱っています。何らかの理由で、数日から、私のアプリケーションはJSONファイルをモジュール内にロードしていないようです。モジュール 'json'を解決できません

このアプリはcreate-react-appで作成されており、問題なく開発中です。私は基本的にjsonファイルのみをエクスポートするプロジェクト(world-countries)に依存してきました。この依存関係は最近追加されたものではありません。

だから、ここにいるのです。アプリケーションを構築/起動中に1日から別のものに、私は次のエラーを取得する:

Module not found: Error: Cannot resolve module 'json' in /Users/…

は、私の知る限りでは、私はこのことになる何も変更を加えていない、と作成反応するアプリのWebPACKのバージョンはまだ同じです。

私のアプリのルートにランダムなJSONファイルを要求すると、何らかの形でこの奇妙な動作が発生するとアプリ内のnode_modules内のjsonファイルに適用されます。

他のいくつかのポイント:

  • この時点までは、私は依存関係を再インストールし、複数回のNode.js、無駄にファイルのアクセス権などを確認しています。
  • jsonファイルも内部的に使用していた別の依存関係もこの問題を抱えていましたが、私はそれを回避することができました。
  • webpackで何かがうんざりになった場合に備えて私は明示的にjson-loaderをインストールしましたが、これは何の違いもありませんでした。実際には、不足している依存関係が「json」であり、json-loaderではないことが不思議です。
  • 私はdevサーバーを実行すると、開いているファイルが多すぎるというエラーが表示されるため、ファイルの制限によって引き起こされる不思議な問題だと感じています。私のプロジェクトはで、それはと大きくないので、これは奇妙なようです。私はそれが何かを持っているかもしれないという気持ちがあります。私が持っているモジュールはnpm linkですが、再帰や何もありません。
  • 私はまだかなり混乱しており、問題の原因はわかりません。これを修正する方法に関するご提案は大歓迎です

    +0

    jsonファイルのインポートパスの先頭に '!json!'を追加してみてください。例: 'import somehting from '!json!../ something.json';' – Zeus

    +0

    @zeusこれはモジュール内部にあるので、必ずしもこれを制御する必要はありません。それでも、私が今追加するときに違いはありません.jsonをロードする必要があると分かっていますが、jsonの解析に関連するモジュールを見つけることはできません。そのモジュールは、明らかに 'json-loader'ではありませんが、' json'と思われます。 – Marco

    +0

    その場合、webpack.config.js '{test:/\.json$/、loader:" json "、include:" path/to/your/sources "}にこれを追加してみてください。これはローダー配列内にあります。 – Zeus

    答えて

    1

    過去にjsonファイルをインポートすることに関して、issueという関連性があったようです。それは依存関係ではありませんでしたが、私はそれが関連していると信じています。

    私は新しいプロジェクトを足場にして、world-countriesモジュールをインポートしてログインし、うまくいきました。

    再足場を更新するか、すべての依存関係を更新することをお勧めしますが、とりわけreact-scriptsのバージョン0.9.5です。私のcreate-react-app-version1.3.0です。

    +0

    HeyAperçu、なぜCRAリポジトリを検索するときにこの問題が見つからなかったのか混乱しています。それは私に[リンクされたパッケージのサポートを改善する要求を引き出す](https://github.com/facebookincubator/create-react-app/pull/1884)につながりました。この修正はまだ行われていませんが、修正プログラムをnpmで直接使用するか、[回避策](https://github.com/facebookincubator/create-react-app/issues/1895#issuecomment-289255742)を使用して解決しますその間の問題ありがとう! – Marco

    +0

    ああクール!ええ、私はこの1つを見ましたが、あなたがこれを必要とし、私はしない場合はまだ少し奇妙です。リンク先のIも扱っていますか?さて、あなたは問題のことを知っていると思います); –

    +0

    ええ、それは変です。まだ問題が最初に現れた原因については説明していません。 「リンクされた部門I」では何を意味するのかはっきりしていませんが、異なるアプリケーション間で共有されるビジネスロジックを分割する必要がありました。 – Marco