LoginSignup
0
2

More than 5 years have passed since last update.

react-nativeだと `import Login from '🔑Login'` と書ける

Last updated at Posted at 2017-09-27

react/react-domでもbabel-pluginを使えば可能だと思うがreact-nativeだと

/**
 * @providesModule 🔑Login
 */

とファイルの先頭に書くだけでOK。

@providesModuleの利点

// こういう相対パスが長い、モジュールの読み込みが
import baz from '../../../src/foo/bar/baz'
// こうなる
import baz from 'baz'

目下react-native限定で、ほぼほぼundocumented

Documentやリリースノートでも触れられているが・・・・

If you've added a new module, add a @providesModule at the end of the comment. This will allow the haste package manager to find it.

エディタでも入力候補に出せるようにできる

挙動などその他

  • 'haste module`
    • @providesModule 使ったモジュールを呼び名
  • 名前はproject内部でユニークでないとダメ
    • 衝突するとエラーがスローされる
  • lodash, moment などnpmモジュールと同じ名前を @providesModule で使ってしまうと、haste moduleが優先的に読み込まれるのが仕様、らしい

babelでも同じことができる

babel-plugin-module-resolver を使えばできるが、1つずつパターンを列挙していく必要がある

{
  "plugins": [
    [
      "module-alias",
      [
        { "src": "./src", "expose": "src" },
        { "src": "./src/foo/bar/blah/blah/baz", "expose": "bazu" },
        { "src": "./app", "expose": "app" },
        { "src": "./app/resources/icon", "expose": "icon" }
      ]
    ]
  ]
}

  • globパターンは使えるが、まあまあ手間

resource

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2