これは、create-react-appの開発者によって追加された特別な制限です。に実装されModuleScopePlugin
、ファイルが確実にに常駐しsrc/
ます。このプラグインは、アプリのソースディレクトリからの相対インポートがその外部に到達しないようにします。
この機能eject
は、create-react-appプロジェクトの操作後にのみ無効にできます。
ほとんどの機能とその更新は、create-react-appシステムの内部に隠されています。作成eject
すると、いくつかの機能とその更新がなくなります。したがって、webpackなどの設定に含まれるアプリケーションを管理および設定する準備ができていない場合は、eject
操作しないでください。
既存のルールでプレイします(srcに移動)。しかし今、あなたは制限を取り除く方法を知ることができます:実行してwebpack設定ファイルからeject
削除ModuleScopePlugin
してください。
以来作成反応するアプリ v0.4.0NODE_PATH
環境変数絶対インポートのパスを指定することを可能にします。また、v3.0.0 NODE_PATH
は非推奨となっているためbaseUrl
、jsconfig.json
またはでの設定が推奨されtsconfig.json
ます。
絶対インポートでは、ベースURLで指定された値を基準にしてimport App from 'App'
代わりに使用できますimport App from './App'
。
この機能は、monoreposまたはその他の構成に関する質問に特に役立ちますが、public
フォルダーから画像やその他のものをインポートする場合には役立ちません。
public
フォルダーのコンテンツはフォルダーに配置されbuild
、相対URLで使用できます。また、インポートされたものはすべてwebpackによって処理され、build
フォルダーにも配置されます。
public
フォルダーから何かをインポートすると、おそらくそのものがbuild
フォルダーに複製され、2つの異なるURL(または異なるロード方法)で使用できるようになるため、最終的にパッケージのダウンロードサイズが悪化します。
srcフォルダーからインポートすることをお勧めします。すべては、最適なサイズのチャンクで、最高のロード効率のために、Webpackによってバンドルにパックされます。
中間ソリューション、すなわち存在するのReWireあなたは、プログラムのWebPACKの設定を変更することを可能にするシステムが。しかし、プラグインを削除することは良い解決策ではありません。と同様に、完全に機能する追加のディレクトリを追加することをお勧めします。ModuleScopePlugin
src
現在、 create-react-app
src
ルートフォルダー以外の追加のディレクトリはサポートされていません。これは、react-app-rewire-aliasを使用して実行できます。
../public/images/logo_2016.png
最初にcomponentsフォルダーから、次にsrcフォルダーから、2回上がった必要があります。