Javascript 构建一个既服务于React又服务于React Native的NPM包
我们正在为一个公司项目构建一个名为Chat的NPM包。它基于减速器和减速器 对于web和RN而言,其用途是:Javascript 构建一个既服务于React又服务于React Native的NPM包,javascript,reactjs,npm,Javascript,Reactjs,Npm,我们正在为一个公司项目构建一个名为Chat的NPM包。它基于减速器和减速器 对于web和RN而言,其用途是: <Chat userName={user.userName} password={user.password} avatarUrl={user.avatarUrl} defaultAvatar={defaultAvatar} defaultGroupAvatar={defaultGroupAvatar} name={user.name
<Chat
userName={user.userName}
password={user.password}
avatarUrl={user.avatarUrl}
defaultAvatar={defaultAvatar}
defaultGroupAvatar={defaultGroupAvatar}
name={user.name}
/>
然而,网络和移动之间存在差异:
- 依赖项:RN需要react-native和其他RN包,而web需要react-textarea autosize和其他web包。不用说,为web安装React Native的软件包是相当大的开销
- 编译:RN可以使用ES6,但web需要babel传输到JS
这两种方式都有其缺点。第一种方法会造成包的混乱,第二种方法意味着package.json不是描述性的。还有更好的方法吗?构建跨平台React NPM软件包的正确方法是什么?就像RN将ios和android分开一样,为web添加第三个入口点,并添加所有需要的web构建脚本。我来看看。使用不同的package.json文件?应该是同一个包。您可以为每个平台提供包,但正如您所说的,您必须取出通用代码并创建包,以便在其他平台包中重用。我不会这样做,除非你真的想为每个平台隔离源代码控制。软件包中显示的额外依赖项在您的工作目录中未使用,但不应影响生产性能。就像RN将ios和android分开一样,为web添加第三个入口点,并添加所有需要的web构建脚本。我来看看。使用不同的package.json文件?应该是同一个包。您可以为每个平台提供包,但正如您所说的,您必须取出通用代码并创建包,以便在其他平台包中重用。我不会这样做,除非你真的想为每个平台隔离源代码控制。出现在包中的额外依赖项在工作目录中未使用,但不应影响生产性能。