我正在尝试弄清楚 React Native 的构建过程以及 Metro 捆绑器和 babeljs 到底做了什么。特别是允许我使用 ES5+ 语法。我发现一些消息来源似乎告诉我一些不同的事情。这消息来源说:
\n\n\n\n\nMetro 将所有 javascript 代码合并到一个文件中,并翻译\n 设备无法理解的任何 Javascript 代码(例如 JSX 或一些\n 较新的 javascript 语法)
\n
这个说:
\n\n\n\n\nReact Native 使用 Babel 将 React 语法和较新的 ES5+\n 语法转换为可以在不支持这些功能的 JavaScript 环境中运行的代码。
\n
所以现在我很困惑两者到底做了什么。我还在上面的源代码(和 Metro 文档)中找到了这一点:\n Metro。变换过程描述为:
\n\n\n\n\n所有模块都经过变压器。转换器负责将模块转换为目标平台可以理解的格式(例如 React Native)。模块的转换根据您拥有的核心数量并行进行。
\n
这听起来和 babel 应该对我做的转译一模一样,或者这是不同的东西?除此之外,我对捆绑过程的解决部分的工作原理以及它与其他步骤并行工作的确切方式感到困惑,但这也许是另一个问题的主题。
\n我正在尝试使用 REST API 在 firebase 中生成动态链接。我在文档的以下页面上尝试了以下说明:https : //firebase.google.com/docs/dynamic-links/rest#create_a_short_link_from_parameters
我提前为错误的格式道歉,但我的请求看起来像这样:
发布https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=
带标题:
内容类型:应用程序/json
与身体:
{
"dynamicLinkInfo":{
"domainUriPrefix":"https://<myDomain>.page.link/",
"link":"https://www.google.com/",
"androidInfo":{
"androidPackageName":"com.<companyName>.<appname>"
}
}
}Run Code Online (Sandbox Code Playgroud)
我得到的回应是:
{
"error": {
"code": 400,
"message": "Invalid Dynamic Link domain: '' or Domain Uri Prefix: 'https://<myDomain>.page.link/'. Expecting exactly one. Dynamic Link Domain isPresent = false, Domain URI prefix isPresent = false, [https://firebase.google.com/docs/dynamic-links/rest#create_a_short_link_from_parameters]",
"status": "INVALID_ARGUMENT"
}
}Run Code Online (Sandbox Code Playgroud)
我的 firebase 项目有一个在项目中注册的 .page.link 域。在 firebase 项目的动态链接部分,它确实出现了。我已经测试过在 firebase 控制台中创建链接,我什至能够使用 react-native-firebase 包手动制作动态短链接,所以我很确定我的项目没有问题。