javascript - 使用 glob 导入多个文件

标签 javascript node.js reactjs ecmascript-6 react-router

我正在构建一个模块化 react 应用程序。但我遇到了一个问题,无法动态导入应用程序的路由。想象一下:

应用程序 ├── 应用程序.js └── 模块 ├── 模块_1 │   └── 路线.js ├── 模块_2 │   └── 路线.js └── 模块_3 └── 路线.js

想象一下所有的routes.js文件都包含这样的内容:

//modules/module_*/route.js
import React, { Fragment } from 'react';
import { Route } from 'react-router-dom';

export default () => {
    <Route path="/module/path" component={ModuleComponent}>
};

然后我会在我的 app.js 中执行此操作:

const Routes = import('modules/**/routes.js');

const App = () => (
   <BrowserRouter>
       <Routes />
   </BrowserRouter>
);
export default App;

现在我正在运行一个单独的 Node 脚本,为所有的routes.js 文件创建一个索引文件,但这变得很乏味。我希望可能有更好的方法

最佳答案

npm 包 import-glob 正是我想要实现的目标。

--编辑--

该包基本上执行@E 的操作。 Sundin 在他的帖子中描述了这一点。基本上,您可以将包添加为 JavaScript 文件中的预加载器,这样您就可以执行以下操作

import modules from "./foo/**/*.js";

该包将其扩展为:

import * as module0 from "./foo/1.js";
import * as module1 from "./foo/bar/2.js";
import * as module2 from "./foo/bar/3.js";

modules = [module0, module1, module2]

关于javascript - 使用 glob 导入多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53216259/

相关文章:

javascript - 使用父模型创建子记录并返回嵌套在响应中

node.js - node.js 可以在任何托管服务提供商中运行吗?

reactjs - TypeError : theme. 间距不是函数

javascript - 密码用html验证。获取请求重新加载页面而不是转到提交页面

javascript - jQuery 热键只工作一次

javascript - jQuery 计算输入的内容

node.js - 如何解决 "Cannot read property ' should' of undefined"in chai?

javascript - 等号在错误的地方导致未知 token 异常

javascript - 单击按钮时在函数内调用 React 组件

javascript - Bootstrap 下拉菜单不适用于标准 JS 和 CSS