代码之家  ›  专栏  ›  技术社区  ›  Nurbol Alpysbayev

在Node.js中是否可以检测代码是否执行其他脚本/文件

  •  1
  • Nurbol Alpysbayev  · 技术社区  · 7 年前

    const myFunc = () => exec('node foo.js')
    

    现在我的库执行myFunc,但它不知道是否执行另一个脚本。如何让它知道?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Estus Flask    7 年前

    如果需要检测可能导致脚本执行失控的API调用,并且需要检测调用,则必须对API进行修补,例如:

    const childProcess = require('child_process');
    const { exec } = childProcess;
    childProcess.exec = function () {
      console.error(new Error('No coverage'));
      return exec.apply(this, arguments);
    };
    

    这适用于 global.eval , global.Function 全部的 child_process 模块功能,一些 vm worker_threads 功能。

    推荐文章