javascript - Node.js,如何动态 require 文件而不丢失智能代码导航
问题描述
我正在开发一个 node.js 应用程序(不和谐机器人)。
我有几个不同的文件,如事件、模型、服务等。文件夹结构。
我面临以下问题:我需要首先要求所有文件,它们需要可以从任何文件轻松访问,并且我还需要能够使用代码预览和转到定义Visual Studio 代码工具。
这是我目前的做法:
const models = {};
const services = {};
const modelsFolder = 'models/folder/path';
const servicesFolder = 'services/folder/path';
const getFolderFiles = (folder, previousFolder) => {
const tempMap = new Map();
// Recursive search on all files inside the folder.
// Returns a Map, where the filename will be the key,
// and the require is the value.
tempMap.set('fileName', require('found/file/path'));
return tempMap;
};
// Method called from the index.js starting script.
const fetchAllFiles = () => {
const modelsMap = getFolderFiles(modelsFolder);
const servicesMap = getFolderFiles(servicesFolder);
// Assign found Maps to the exportable Object.
};
module.exports = {
fetchAllFiles,
models,
services,
};
之后,我可以访问任何我想要的东西,无论是服务还是特定模型。
const { models, services } = require('holder/file/path');
const { ModelA, ModelB } = models;
const { MethodX1, MethodX2 } = services.ServiceX;
const { MethodY1, MethodY2 } = services.ServiceY;
// Do stuff...
问题:没有找到类型定义,我真的需要能够查看其他文件,因为它们有几十个。
我不认为这个工作流程不好,但如果有更好的工作流程,我会很感激!
解决方案
推荐阅读
- php - 我的代码没有从 mysql 数据库中读取
- java - 如何在java中创建下面给出的json?
- tensorflow - TF 估计梯度提升分类器在训练时突然停止
- sql - 获取最后一个值和今年的值进行比较
- android - 不断收到解析错误启动文件提供程序意图
- sql - 如何将现有主键替换为另一个现有主键以合并两条不同的记录?
- scala - 如何将收到的消息广播到两个不同的流
- javascript - 如何使用 VueJS 和 ChartJS 更新图表
- excel - VBA Excel列排序运行时错误1004
- android - 在 Xamarin Forms 中更改 Android 版本(目标框架)时出错