web-dev-qa-db-ja.com

ネイティブに反応-package.jsonのエイリアス名を使用した絶対インポート

相対的なインポートの悪を解決するimport '@someDir/something'を使用するいくつかのプロジェクトを見ました。

それから私はこれを見つけました ブログ投稿 この方法について話している。基本的に、ディレクトリにpackage.jsonを作成し、それらのエイリアス名を指定するように指示します。

Expoをベースにしたreact-nativeプロジェクトに実装しましたが、うまく機能しています。

このようなもの:

{"name": "@someDir"}

src/someDir/package.json内。

そして、私はどこでもimport '@someDir/something'できます。

なぜこれが機能するのですか?魔法はどこで起こっているのですか? Webpackまたはbabelまたはreact-native自体?

問題 この機能について話し合っているのを見ましたが、どこに実装されているのかわかりません。

私の.babelrc

{
  "presets": ["babel-preset-expo"],
    "env": {
        "development": {
              "plugins": ["transform-react-jsx-source"]
      }
    }
}

それはバベルの依存関係を掘り下げましたが、関連するものは何も見つかりませんでした。

6
Nakamura

これは、reactNativeのjavascriptバンドラーであるmetroの一部のようです。

https://www.belighted.com/blog/react-and-react-native-directories-management

https://facebook.github.io/metro

3
Jan F.