Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检测节点中的任意表达式?_Javascript_Node.js - Fatal编程技术网

Javascript 如何检测节点中的任意表达式?

Javascript 如何检测节点中的任意表达式?,javascript,node.js,Javascript,Node.js,我需要以编程方式将函数调用包装到函数中,例如,我需要转换此函数 define('src/libs/require.js', ['src/common/bundle.js'], function (imports) { debugger; test = imports.test; imports.fmtNow(); self.postMessage({ method: 'injected', message: `${performan

我需要以编程方式将函数调用包装到函数中,例如,我需要转换此函数

define('src/libs/require.js', ['src/common/bundle.js'], function (imports) {
    debugger;
    test = imports.test;
    imports.fmtNow();
    self.postMessage({
        method: 'injected',
        message: `${performance.now().fmt()}\tloaded:\tsrc/common/bundle.js`
    });
});
进入这个

function inject() {

    define('src/libs/require.js', ['src/common/bundle.js'], function (imports) {
        debugger;
        test = imports.test;
        imports.fmtNow();
        self.postMessage({
            method: 'injected',
            message: `${performance.now().fmt()}\tloaded:\tsrc/common/bundle.js`
        });
    });

}
define调用可以在模块中的任何位置,第三个参数可以包含任何有效的js函数定义或表达式(其计算结果为函数)

我想我可以使用UglifyJS的(和谐版)来实现这一点,我可以构建一个AST,并发现表达式没有问题。现在我必须弄清楚如何操作AST来添加包装器,然后写出修改后的代码


这是正确的方法还是更简单的方法?

什么。你为什么这么做?你想实现什么?@naomik我想通过编程隔离表达式并将其包装到函数中。不清楚?对,但为什么?这听起来很像XYproblem@naimik我正在修改一个汇总插件,以允许我将
导入到基于blob的web worker中。所以,我需要在绑定过程中转换一些源代码。我原以为在一个函数中包装一些任意表达式在绑定器中很常见。如果不是的话,我会找到另一种方法。也许你只是在问一个Z问题?“我正在修改一个汇总插件,以允许我导入到一个基于blob的web worker中。因此,我需要在绑定过程中转换一些源代码”-此上下文非常重要,可以帮助人们理解你为什么要尝试这样做。这是您的实际任务,可能有更好的/惯用的方法来完成它,而不是您最初尝试的方法。你应该用这个上下文更新你的问题,但是很抱歉我不能帮你进一步做什么。你为什么这么做?你想实现什么?@naomik我想通过编程隔离表达式并将其包装到函数中。不清楚?对,但为什么?这听起来很像XYproblem@naimik我正在修改一个汇总插件,以允许我将
导入到基于blob的web worker中。所以,我需要在绑定过程中转换一些源代码。我原以为在一个函数中包装一些任意表达式在绑定器中很常见。如果不是的话,我会找到另一种方法。也许你只是在问一个Z问题?“我正在修改一个汇总插件,以允许我导入到一个基于blob的web worker中。因此,我需要在绑定过程中转换一些源代码”-此上下文非常重要,可以帮助人们理解你为什么要尝试这样做。这是您的实际任务,可能有更好的/惯用的方法来完成它,而不是您最初尝试的方法。您应该在此背景下更新您的问题,但很抱歉,我无法进一步帮助您