如何在react-native的packager中将我的包的依赖项的特定node_modules列入黑名单?

Dar*_*río 6 packager react-native

我正在整理一个简化的开发过程,其中包含react和react-native:

  • 鼓励包裹,
  • 使用babel转换es6js(它在发布/安装之前编译),
  • 有一个游乐场,让你玩本地和网络组件.

它的网络部分非常好.这是导致问题的本地问题,它与反应原生的打包器有关.

底线是:如果包通过npm link或直接从游乐场链接,就像require('../../')反应本机的依赖解析器将永远尝试识别我的包内的依赖关系node_modules,大多数情况下它永远不会完成它.

我发现的临时解决方案是在操场上安装软件包,但这涉及每次更新时重新安装它,这不是很好,因为你无法立即看到你的更改(即使它是自动化的,这需要时间).

我相信更好的解决方案是让依赖解析器忽略那些我不需要的特定模块(devDependencies主要是那些!).我尝试通过向该列表添加路径来修改react-native/packager/blacklist.js,甚至对依赖项解析器进行检查,但这些都不起作用.

那些对打包者有更多经验的人能否给我一个提示,告诉我如何让依赖解析器通过?或者,如果包装商可以分开并且转换过程可以选择但是我不知道这是否可行,那将是很好的.

Alb*_*ert 10

我根据以下评论找到了以下解决方案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.
Run Code Online (Sandbox Code Playgroud)

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;
Run Code Online (Sandbox Code Playgroud)

blacklist函数的第二个参数是列入黑名单的路径的附加列表,可以是正则表达式.有关react-native/packager/blacklist.js更多示例,请参阅


归档时间:

查看次数:

2762 次

最近记录:

8 年,10 月 前