如何让 Metro(React Native 打包器)忽略某些目录

2024-01-22

Problem:

我的项目有一个@providesModule naming collision当试图跑步时react-native run-ios从命令行。它与自动生成的目录冲突dist/它是由另一个 npm 包 esdoc 创建的。我希望能够保留这个自动生成的目录,并使反应本机打包程序忽略dist/ dir.

错误信息:

[01/23/2017, 13:17:07] <START> Building Haste Map
    Failed to build DependencyGraph: @providesModule naming collision:
      Duplicate module name: ann
      Paths: /Users/thurt/projects/example/package.json collides with /Users/thurt/projects/example/dist/esdoc/package.json

This error is caused by a @providesModule declaration with the same name across two different files.
Error: @providesModule naming collision:
  Duplicate module name: ann
  Paths: /Users/thurt/projects/example/package.json collides with /Users/thurt/projects/example/dist/esdoc/package.json

This error is caused by a @providesModule declaration with the same name across two different files.
    at HasteMap._updateHasteMap (/Users/thurt/projects/example/node_modules/react-native/packager/react-packager/src/node-haste/DependencyGraph/HasteMap.js:158:13)
    at p.getName.then.name (/Users/thurt/projects/example/node_modules/react-native/packager/react-packager/src/node-haste/DependencyGraph/HasteMap.js:133:31)

此配置有在 RN 版本之间变化的习惯。请参阅下文,了解有关创建配置文件、加载配置文件和清除缓存的特定于版本的说明。

对于 React Native >= 0.64 到 0.71(+?)

辅助函数的重命名from blacklist to exclusionList是在 Metro 0.60 中制作的 https://github.com/facebook/metro/commit/3e2d9116d8a7f2580dcda51990cca5b3d98a81ff,以及配置条目blacklistRE -> blockList地铁 0.61 https://github.com/facebook/metro/commit/94c0b541b4bfa17aee4efa0f1969565522ce830d。这两个landed https://github.com/facebook/react-native/blob/0.64-stable/package.json在 0.64.0 中的 RN 中。

在您的项目根目录中创建metro.config.js内容:

const exclusionList = require('metro-config/src/defaults/exclusionList');

// exclusionList is a function that takes an array of regexes and combines
// them with the default exclusions to return a single regex.

module.exports = {
  resolver: {
    blockList: exclusionList([/dist\/.*/])
  }
};

对于 React Native >= 0.59,

在您的项目根目录中创建metro.config.js内容:

const blacklist = require('metro-config/src/defaults/blacklist');

// blacklist is a function that takes an array of regexes and combines
// them with the default blacklist to return a single regex.

module.exports = {
  resolver: {
    blacklistRE: blacklist([/dist\/.*/])
  }
};

对于 React Native >= 0.57,

在您的项目根目录中创建rn-cli.config.js内容:

const blacklist = require('metro-config/src/defaults/blacklist');

// blacklist is a function that takes an array of regexes and combines
// them with the default blacklist to return a single regex.

module.exports = {
  resolver: {
    blacklistRE: blacklist([/dist\/.*/])
  }
};

对于 React Native >= 0.52,

在您的项目根目录中创建rn-cli.config.js内容:

const blacklist = require('metro').createBlacklist;

module.exports = {
  getBlacklistRE: function() {
    return blacklist([/dist\/.*/]);
  }
};

对于 React Native >= 0.46,.

在您的项目根目录中创建rn-cli.config.js内容:

const blacklist = require('metro-bundler').createBlacklist;

module.exports = {
  getBlacklistRE: function() {
    return blacklist([/dist\/.*/]);
  }
};

对于 React Native .

在您的项目根目录中创建rn-cli.config.js内容:

const blacklist = require('react-native/packager/blacklist');

module.exports = {
  getBlacklistRE: function() {
    return blacklist([/dist\/.*/]);
  }
};

所有版本

让您的 CLI 命令通过传递以下内容来使用此配置--config option:

react-native run-ios --config=rn-cli.config.js

(配置文件应该由 RN >= 0.59 自动获取,自从它被重命名以来metro.config.js)

所有版本:关于缓存的注意事项

请注意,列入黑名单的项目可能已被打包程序包含在缓存中,在这种情况下,第一次使用黑名单运行打包程序时,您可能需要使用以下命令重置缓存--reset-cache

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何让 Metro(React Native 打包器)忽略某些目录 的相关文章

  • 使用 Jest 监视链式方法调用不起作用

    我已经定制了自己的习惯TextInput组件需要一个nextField支柱 当我的 完成 按钮TextInput被按下时 nextField应该集中精力 很简单 它在生产中起作用 但是 我在测试重点代码行时遇到了问题nextField th
  • 在前台显示通知 React Native Firebase v6

    我正在使用最新的 React Native 版本 0 62 和最新版本的 React Native Firebase 即 v6 我能够收到通知 它在后台工作正常 但不显示在前台 Here is the screenshot 这是我的代码 c
  • 错误:任务“:app:mergeDebugNativeLibs”执行失败

    我的反应本机应用程序运行正常 但突然我开始收到错误 错误1 Execution failed for task react native webview compileDebugKotlin 所以为此我在 android build gra
  • 与对象反应 Native FlatList

    我想使用 React Native 的 FlatiList 渲染对象 但该组件没有返回预期结果 我的字典是这样的 Object Lisa Sky Object name Lisa surname Sky age 21 sex female
  • Android Studio首次启动时Android SDK不可用

    我一直在尝试安装 Android Studio 以便使用 Expo 创建 React Native 应用程序 当我尝试安装 Android Studio 并首次运行它时 我看到以下屏幕 请记住 我还没有单独安装 SDK 我不确定如何安装 我
  • 如何使用本机反应在选项卡导航下的页脚文本中设置图像

    我需要设置所有页面上都有图像和文本的页脚 我已经使用了 React Native TabNavigator 问题是页脚文本以大写形式显示 并且背景颜色没有更改并且无法在页脚中设置图像 tabBarPosition bottom tabBar
  • 如何从其他组件更新状态?

    我正在使用本机反应和反应导航进行路由 如何从另一个组件 页面更新状态 主屏幕 export class HomeScreen extends Component constructor this state test updateState
  • 这里是反应本机移动应用程序中的地图集成

    我正在尝试在react native项目中实现heremap api 搜索时得到了https www npmjs com package react native heremaps https www npmjs com package r
  • 无法在react-native android中设置ShadowColor

    环境 环境 操作系统 macOS High Sierra 10 13 1 节点 8 9 1 纱线 0 17 10 npm 5 6 0 守望者 4 7 0 Xcode Xcode 9 2 内部版本 9C40b Android Studio 2
  • 在 Flex 中,React Native 会溢出

    因此 对于上面的图像 我试图让 绿色 框包围动态文本 请注意蓝色和黄色文本框是如何在flex row 配置 蓝色文本框位于flex 2黄色是flex 1 一切工作正常 直到文本对于父容器来说太大 我希望绿色容器能够根据需要生长以适应弯曲的内
  • 使用 Expo XDE 找不到入口文件index.js

    当我在 Expo 中加载反应本机应用程序时 出现错误 在任何根目录中都找不到入口文件index js 我正在添加到现有的 React Web 应用程序 并在根级别有 index ios js 在本地 模拟器中以及通过硬连线手机上的 Xcod
  • 在 React Native 应用程序中哪里可以获取 EXPO DEBUG 值?

    当我尝试登录 expo 时出现此错误 exp Set EXPO DEBUG true in your env to view the stack trace 你知道我到底要在哪里设置值吗EXPO DEBUG EXPO DEBUG是一个环境变
  • React Native 从 JavaScript 代码内部访问 strings.xml

    有没有办法访问当前值android app src main res values strings xml从 JavaScript 代码内部 我想为每个构建放置不同的端点 URL 但我什至无法检测到反应本机代码内的构建类型 而不必求助于 D
  • 在 React-Native 上共享工作表图标

    我环顾了我能想到的所有地方 但我一生都无法找到如何更改react native内部共享表中出现的图标 这甚至可以定制吗 我很想把应用程序的图标放在那里 仅使用网址时 它会自动使用链接的网站图标 网络图标填充此图标 对于带有自定义消息的共享表
  • React Native:相机流的多个预览

    我有一个要在 Android 和 iOS 中开发的 React Native 应用程序 我想在其中获取相机流 进行一些处理 然后多次渲染它 想象一下像 Instagram 这样的应用程序 您可以在其中实时向相机添加滤镜 并在实时预览中显示应
  • 如何从react-native webview获取选择对象

    我有一个应用程序 我使用反应本机 webview 来显示文档 用户可以选择一些文本并执行我提供的一些自定义操作 如何从 webview 获取选择对象into my app 从 0 37 0 开始 RN 中的一个新功能可能会对您有所帮助 里面
  • React-native iOS 不显示图像(pod 问题)

    我正在我的react native应用程序中安装一个包 具体来说 它是来自react navigation的createMaterialTopTabNavigator 但安装成功后 出现崩溃 错误 react navigation mate
  • React-native-vision-camera无法访问后面的普通摄像头

    我正在尝试在 iPhone 11 Pro 上使用 普通 相机 我使用反应本机视觉相机 当我运行这段代码时 const devices useCameraDevices const deviceBack devices back consol
  • React Native this.'function' 不是一个函数

    我正在学习 React Native 和 Redux 这里有很多与我类似的问题 但我很难与我的问题联系起来 当我在另一个方法中调用一个方法时 它不断地返回给我 this some function 不是一个函数 我真的不知道该怎么做 这是我
  • Apollo graphql 将标头设置为 authmiddleware 不起作用

    我正在使用react native和apollo客户端 如果我尝试通过存储在AsyncStorage中的jwt设置标头 它似乎不起作用 其他不需要标头的解析器工作得很好 我的代码如下所示 import ApolloClient from a

随机推荐

  • 更改左侧工具栏默认图标

    我目前在顶部使用工具栏 并希望用主页按钮替换默认的后退按钮 但是当我添加项目时 它总是添加到右侧 我也没有看到任何layout gravity选项可供选择 有没有办法做到这一点 主要活动 Toolbar toolbar Override p
  • jQuery/Javascript 暂时禁用 addEventListener/attachEvent 附加的事件

    有没有办法暂时禁用事件侦听器 就我而言 我有一个第三方库 not以 jQuery 为中心 使用以下方法在元素上创建 mouseover mouseout 事件添加事件监听器 附加事件 在某些情况下 另一个事件会在不同的元素上触发 我需要禁用
  • 如何在 R 中保存二值图像的 XY 坐标?

    I am trying to save the XY coordinates of a binary image in R similarly to the save Save XY Coordinates function in Imag
  • 加载前检查文件是否存在

    我想要做的是在 Material Widget 中加载图像以在 ListTile 中使用它 但该资源可能不存在 class MyImage extends StatelessWidget final imagePath MyIcon Str
  • 如何判断多面体是否是凸多面体?

    我正在寻找一种有效的算法来确定多面体是否是凸的 我首先检查欧拉特征是否为 2 我还检查每个面是否都是凸面 但这仍然没有抓住很多案例 看一下这个 http liam flookes com cs geo http liam flookes c
  • 关于 C# RFID 线程的问题

    我的问题是寻求反馈 以确保我采取正确的方法并正确处理线程 我有一种感觉 我可能需要设置一些我自己的线程 所以欢迎所有反馈 我遇到的问题是从零个或多个 RFID 阅读器读取 RFID 标签 我可以毫无问题地为单个读者阅读 因此从多个读者那里阅
  • Django 表单和标题属性

    我需要使用属性 title 来渲染我的表单以进行 jquery 验证 以这种方式渲染我的表单怎么办
  • 自己编码的聊天中的 ListView Rowlayout

    我正在尝试做什么 我正在尝试创建一个必须不同行的聊天 对于每一行我都制作了一个自己的布局文件 但问题是其中一行的布局文件不适合屏幕 Question 我需要在行布局中更改哪些内容才能使其适合应有的效果 您会找到代码以及我正在尝试的打印屏幕
  • 为什么这个函数会多次触发?

    我正在填写这个清单 ul ul 使用 jquery 生成文件夹列表 生成以下 HTML ul li Item 1 li li Item 2 li li Item 3 ul li Sub Item li ul li ul
  • 如何在Jackson ObjectMapper的序列化中添加@JsonIgnore注释字段

    我需要添加 JsonIgnore序列化对象时带注释的字段Jackson ObjectMapper 我知道您可能会建议我删除 JsonIgnore我的类中的注释 但我需要它们在我的应用程序的某些部分可以忽略 在我的应用程序的另一部分我需要那些
  • 滥用比赛?

    您是否会考虑以下代码块匹配滥用 如果是这样 在没有大的 if else if 块的情况下 有什么更优雅的方法可以做到这一点 def sum base Int xs List Int Int base match case 0 gt 1 ca
  • “模糊引用”错误两次指向同一方法

    I used 这个绝妙的解决方案 https stackoverflow com questions 3509290 how to convert a linq result to datatable 3767520 3767520将 li
  • Enterprise Library 5.0安装错误

    此应用程序需要 NET Framework 3 5 SP1 请安装 net Framework 然后再次运行此安装程序 但系统已经安装了 net Framework 4 0 在添加删除程序中我可以看到以下两个条目 1 Microsoft N
  • Angular2:从javascript函数调用组件方法[重复]

    这个问题在这里已经有答案了 目前我正在尝试实现引导日期选择器 它使用jQuery 以及我的 Angular2 项目 这是我到目前为止所拥有的 import Component AfterViewInit Injector Inject fr
  • .ContextMenu 和 .ContextMenuStrip 之间的差异

    两者有什么区别 ContextMenu and ContextMenuStrip在 Windows 窗体中 我已经知道什么是ContextMenu是 但是怎么样ContextMenuStrip不同于ContextMenu 您可能想知道为什么
  • 如何将三角形标记添加到 SpreadsheetGear 网格的任何单元格角?

    这是 SpreadsheetGear Grid 的特定问题 我知道您可以向单元格添加注释 单元格会自动在右上角获得红色三角形标记 但我需要在任何单元格角落添加一个小三角形 不同颜色 来指示一些特殊的东西 有可能做到吗 更新 这是我根据丹尼尔
  • Linux 中 `cd //` 中的双斜杠 // 是什么意思? [复制]

    这个问题在这里已经有答案了 我输入了一个命令cd 代替cd 错误地 而不是像我期望的那样收到错误 shell Bash 显示了一个提示 就像我在 目录
  • 如何在 Keras 中实现 L2-norm pooling?

    我想向我的 CNN 添加一个全局时间池层 它具有三种不同的池函数 均值 最大值和 L2 范数 Keras 有平均池化函数和最大池化函数 但我还没有找到用于 L2 的池化函数 我自己该如何实现呢 我也在寻找这个 keras 中没有这样的开箱即
  • Tensorflow 中的多个会话和图形(在同一进程中)

    我正在训练一个模型 其中输入向量是另一个模型的输出 这涉及从检查点文件恢复第一个模型 同时从头开始初始化第二个模型 使用tf initialize variables 在同一过程中 有大量的代码和抽象 所以我只是将相关部分粘贴到此处 以下是
  • 如何让 Metro(React Native 打包器)忽略某些目录

    Problem 我的项目有一个 providesModule naming collision当试图跑步时react native run ios从命令行 它与自动生成的目录冲突dist 它是由另一个 npm 包 esdoc 创建的 我希望