React Native打包器中是否有一种方法可以为“require”路径设置别名?

5
我正在寻找一种在React Native中使用别名路径的方法,以便不再像下面这样写:

例句已翻译完毕。

require('../../blah')

我可以做:

require('src/blah') 

其中'src'位于根目录。


我无法仅使用react-packager找到明确的答案,现在我使用webpack编译所有自己的源文件,并使用react-packager执行一些特殊的react-native所需的操作。基本上,react-packager打包一个具有require('webpack_bundle.js')的文件。如果您愿意,我可以进一步解释这个过程。 - Qiming
3个回答

4

您可以始终使用应用程序的名称作为“root”。(即在您的package.json中编写的名称):

require('<package name>/img/yourimage.png') 

1

可以使用fbjs @providesModule pragma。基本上,您只需在源文件前面添加:

/**
 * @providesModule blah
 */

它使您能够在其他文件中使用require('blah')。 据我所知,此功能仅供Facebook使用,因此可能会导致警告或在未来出现故障。

谢谢@oblador。我还没有机会测试,但测试后将进行更新。 - Chris Ellingsworth
这是朝着正确方向迈出的一小步,但是关于将别名映射到磁盘上的任意路径,而不仅仅是项目文件夹内部,有何考虑? - Qiming
@Qiming:尝试使用npm link或普通的ln -s,但是打包程序目前还不支持这种方式。 - oblador
请不要使用这个 @providesModule。 - Martin Konicek

0

+1 我也需要这个功能。

目前我正在使用browserify来捆绑我的js文件,将react-native标记为外部,并使用aliasify模块进行路径别名。作为第二步,我将我的捆绑包传递给打包程序。

到目前为止,我找到的唯一其他解决方案是将您的模块放在node_modules目录中(可能带有链接)。

这两种解决方案对我来说都很麻烦和不舒服...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接