嗨,我正在尝试编写一个 codemod,它将我的 require 语句从文件顶部移动到类构造函数内部。
const moduleA = require('moduleA');
const moduleB = require('../moduleB');
class Example {
constructor(context) {
this.lazy(
"moduleA",
() => new moduleA(context)
);
this.lazy(
"moduleB",
() => new moduleB(context)
);
}
lazy() {
}
async callThis() {
this.moduleA.callThatMethod();
}
}
module.exports = Example;
文件顶部的这些 require 语句需要很长时间,仅当该 API 至少调用一次时才使用。因此,无论如何,Node.js 都会在进程级别缓存 require 。我试图require
在箭头函数内移动语句。
像下面
class Example {
constructor(context) {
super(context);
this.lazy("moduleA", () => {
const moduleA = require('moduleA');
return new moduleA()
}
this.lazy("moduleB", () => {
const moduleB = require('../moduleB');
return new moduleB()
}
}
async callThis() {
this.moduleA.callThatMethod();
}
}
我在实现这一点时遇到了麻烦,因为我不知道如何选择定义的“惰性”函数,然后移动顶部需求。
非常感谢任何帮助谢谢