javascript - 从一个来源构建多个 React Native 包

标签 javascript node.js build react-native ecmascript-6

例如,我有一些具有某些功能的 React Native 应用程序。最完整的应用包含

  1. 新闻
  2. 产品
  3. 用户授权

我想要 2 个版本。喜欢“免费”和“专业”版本。

假设 Free 仅包含新闻。 Pro 包含所有功能。我如何构建它并且不包含我不需要的功能的导入。

在我的脑海里,我有这样的想法:

if (ENV === 'free') {
   import Products from 'products';
}

但是您知道,import 模块始终应该位于文件之上,并且不能被 if-else 或其他任何内容包裹。而且看起来一点也不好看。

有什么想法吗?或者,这可能已经成为普遍做法?

谢谢!

最佳答案

考虑到该应用程序是使用 Webpack 构建的,通常它就像具有单独的入口点一样简单,这些入口点具有环境相关模块(Product)和公分母(其他所有内容)的导入。

import 不能是有条件的,但底层模块化 API 可以。可以是

let Products;

if (ENV === 'pro') {
   Products = require('products').default;
} else {
   Products = null;
}

Webpack 还支持 dynamic requires (也可以使用 ContextReplacementPlugin):

Products = require(`./${ENV}/products`).default;

关于javascript - 从一个来源构建多个 React Native 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41919464/

相关文章:

javascript - HTML、JS : Scroll to div unreliable with collapsing navbar

javascript - 使用 ExtJS 的 CORS 返回错误 405(方法不允许)

javascript - 如何用JS激活我的删除按钮

json - 全局安装 package.json 依赖项

node.js - 此实验性语法需要启用解析器插件 : 'objectRestSpread'

java - 已解析 OSGI 包上的 ClassNotFoundException

javascript 将 int 转换为 float

javascript - 数据库不更新用户密码重置

flutter - InterfaceType 不是 VariableGet 中 Class 的子类型

ios - "No such module"归档时出错