使用“ index.js”导入ES6 JS模块时出现问题

时间:2019-05-08 19:33:40

标签: javascript react-native es6-modules

我正在使用 React Native ,并使用 index.js 来管理模块。我有很多项目都来自相同的components文件夹,该文件夹的结构如下:

components
|_ComponentOne.js
|_ComponentTwo.js
|_index.js

index.js如下所示:

export * from './ComponentOne.js';
export * from './ComponentTwo.js';

现在可以说我有三个项目:

  • ProjectOne ,该组件使用ComponentOne;
  • ProjectTwo ,它使用ComponentTwo;
  • ProjectThree ,两者同时使用;

每个项目都有自己的文件,但是它们引用同一文件夹来使用组件(例如共享资产文件夹)。一切正常,而所有项目对所有组件都具有依赖性。

换句话说,当一个项目没有为组件之一安装依赖项时,我会遇到一个问题,即使项目没有使用该组件,也要安装

让我们以 ProjectOne 为例,该项目仅使用 ComponentOne 。如果 ComponentTwo (在此项目中未使用)具有依赖项X,那么即使在 ProjectOne 上,我也必须 npm install 依赖项X,否则会出错给出。同样, ProjectOne 不使用依赖项X。

我只能想象这种情况的发生,因为 index.js 会验证所有声明的导出,即使未使用它们也是如此。

我正在尝试寻找一种替代方案,以免被迫安装插件甚至其他我在项目中不会使用的东西。我知道,如果我删除 index.js 并开始直接在项目上导入文件,它会起作用,但是我想保留 index.js 结构(能够使用多重导入语法import { ComponentOne, ComponentTwo } from 'components')。

有什么建议吗?


更新

npm安装依赖项X 时遇到的错误是

Module `X` does not exist in the Haste module map

如果我安装了它,一切都会正常。

我正在使用终端将应用程序直接安装到Android手机中。 Metro会自动创建JS捆绑包(默认为RN)。

0 个答案:

没有答案