首页 > 解决方案 > 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...

问题:没有找到类型定义,我真的需要能够查看其他文件,因为它们有几十个。

我不认为这个工作流程不好,但如果有更好的工作流程,我会很感激!

标签: javascriptnode.jsvisual-studio-codenode-modules

解决方案


推荐阅读