我正在尝试做一个处理程序,该处理程序将读取它所在的文件夹。但是,此处理程序是一个模块,将导入到多个文件夹中。
例如,如果给定当前目录:
->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中使用它。但是我想知道如何读取导入目录而不是从处理程序中导入的目录(在本例中为language文件夹)。我这样做是为了为一个应用程序处理多种语言,而且我认为这种方式易于管理。
答案 0 :(得分:0)
如果在NodeJS环境中执行代码,则可以使用它来获取当前目录名称:
import path from "path";
const dirName = path.basename(path.dirname(filename));
dirName变量将包含文件夹名称作为字符串。 然后,您可以使用ES6模板文字来动态导入。
import { lang } from `./languages/${dirname}`