Jam*_*ams 5 javascript reactjs webpack react-native
我在让条件导入在本机反应中工作时遇到了麻烦。
我有一些在React Web应用程序和React Native中使用的文件。
我想要的是:
if(process.env.REACT_PLATFORM === 'WEB') {
import('some_file').then(({someFunc})=> someFunc())
}
Run Code Online (Sandbox Code Playgroud)
因为'some_file'进口了react_router。
但是,此导入仍在进行,RN Metro捆绑器抛出
UnableToResolveError: Unable to resolve module 'react-router' from 'some_file'.
即使我将其替换为:
if(false) {
import('some_file').then(({someFunc})=> someFunc())
}
Run Code Online (Sandbox Code Playgroud)
它仍然尝试加载some_file。无论如何,是否只有在满足条件的情况下才导入/需要此文件?
干杯!
编辑:我尝试过的事情:
经过一番搜索,结果发现动态导入可能有点痛苦。
这是我想出的解决方案,我已经在 node.js 中尝试过了。
const MODULE_NAME = <CONDITION> ? require(MODULE_A) : require(MODULE_B);
Run Code Online (Sandbox Code Playgroud)
或者,我想你可以做这样的事情;
const MODULE_TO_IMPORT = 'MODULE_IMPORT_STRING';
const MODULE_NAME = import(MODULE_TO_IMPORT).then(({someFunc}) => someFunc());
Run Code Online (Sandbox Code Playgroud)
但问题是这些都需要以任何方式导入模块。
| 归档时间: |
|
| 查看次数: |
2850 次 |
| 最近记录: |