我是
putting together a streamlined development process与反应和反应原生:
>鼓励包裹,
>使用babel将es6转换为js(它在发布/安装之前编译),
>有一个游乐场让你玩native和网络components.
它的网络部分非常好.这是导致问题的本地问题,它与反应原生的打包器有关.
底线是:如果包通过npm链接链接或直接从操场上链接,如require(‘../../’),react-native的依赖解析器将永远尝试识别我的包的node_modules中的依赖项,大部分时间它从未完成它.
我发现的临时解决方案是在操场上安装软件包,但这涉及每次更新时重新安装它,这不是很好,因为你无法立即看到你的更改(即使它是自动化的,这需要时间).
我相信更好的解决方案是让依赖解析器忽略那些我不需要的特定模块(主要是devDependencies中的那些模块!).我尝试通过添加路径到该列表来修改react-native/packager/blacklist.js,甚至对dependency resolver进行检查,但这些都不起作用.
那些对打包者有更多经验的人能否给我一个提示,告诉我如何让依赖解析器通过?或者,如果包装商可以分开并且转换过程可以选择但是我不知道这是否可行,那将是很好的.
我根据default.config.js中的注释找到了以下解决方案:
* If you need to override any of this functions do so by defining the file * `rn-cli.config.js` on the root of your project with the functions you need * to tweak.
使用以下内容在项目的根目录中创建rn-cli.config.js:
var blacklist = require('react-native/packager/blacklist'); var config = { getBlacklistRE(platform) { return blacklist([ /node_modules\/my-package\/excluded-dir\/.*/ ]); } }; module.exports = config;
黑名单功能的第二个参数是列入黑名单的路径的附加列表,可以是正则表达式.有关更多示例,请参阅react-native / packager / blacklist.js.