【问题标题】:Is there a way to create a module that can read the directory that it is used in? (TypeScript/JavaScript)有没有办法创建一个可以读取它所在目录的模块? (打字稿/JavaScript)
【发布时间】:2025-11-28 08:45:02
【问题描述】:

我正在尝试做一个处理程序来读取它所在的文件夹。但是,这个处理程序是一个模块,将被导入到多个文件夹中。

例如,如果给定当前目录:

->Main
   ->folder a
      ->languages
   a.js
   ->folder b
      ->languages
   b.js
   ->folder c
      ->languages
   c.js
d.js

d.js - 用于 a.js、b.js 和 c.js 的处理程序

var Translate = ((lang) => {
  // this line below is what I want to know how to do. 
  import { lang } from "./languages/"+lang;

  // do stuff with lang
}

export { Translate }

使用 d.js 处理程序,它应该可以在 a.js/b.js/c.js 中使用。但是我想知道如何读取它正在导入的目录(在本例中为语言文件夹),而不是从处理程序中读取。我这样做是为了处理一个应用程序的多种语言,我认为这种方式更容易管理。

【问题讨论】:

    标签: javascript typescript


    【解决方案1】:

    如果你是在NodeJS环境中执行代码,你可以用这个来获取当前目录名:

    import path from "path";
    const dirName = path.basename(path.dirname(filename));
    

    dirName 变量将包含文件夹名称作为字符串。 然后你可以使用 ES6 模板字面量动态导入。

    import { lang } from `./languages/${dirname}`
    

    【讨论】:

      最近更新 更多