有什么处理引用路径比较好的方法?每次 require('../../../utilities/string') 这样都得想好久
发布于 15 小时前 作者 imWildCat 172 次浏览 来自 问答

react-native 似乎用了类似 @providesModule NavigationContainer 这样的方法来注册全局 module,但是好像需要预编译(貌似 watchman)支持? package.json 能否把项目中某个 js 文件注册为一个 module?

3 回复
  1. 建议把公用的东西单独建个project, 然后install到node_modules里, 本地可以直接用npm link 测试
  2. 或者可以在node_modules里建个link直接指向到你的utilities文件夹

然后就可以直接类似 require('app/utilities')

楼上 +1

scripts: {
  "postinstall": "cd node_modules; ln -sf ../app"
}

另外

不必吝惜全局变量的使用,定义一个 PROJECT_ROOT全局变量又何妨。

require(PROJECT_HOME + '/utilities/xxx')

react-native 的 @providersModule 其实是flow提供的,flow可以通过bable的一个plugin来transpile, flow基本上是个es6+es7+type,或者说是typescript - interface - annotation-… 关于引入太多的问题,我现在的解决办法是:创建一个文件把所有的引入都放进去并export出来,然后在你需要使用的地方可以就引入一个文件就可以了,举例:

// ./shared/imports.js
export {db} from '../../db.js';
export {validator, isRequired} from '../../validator.js';
export {render} from '../../render';

// ./source.js
import {db, validator, isRequired, render} from './shared/import'
回到顶部