You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否记录Node/Express项目中文件的执行顺序?

批量追踪TypeScript文件的执行顺序

不用手动给每个文件加日志,推荐以下几种批量方案:

方案1:Node.js 自定义加载器(Node环境直接运行TS)

创建加载器文件 trace-loader.mjs:

let count = 0;

export async function load(url, context, defaultLoad) {
  // 只追踪src目录下的TS文件
  if (url.includes('src/') && url.endsWith('.ts')) {
    const filePath = new URL(url).pathname.replace(process.cwd(), '');
    console.log(`-> ${++count}. ${filePath}`);
  }
  return defaultLoad(url, context, defaultLoad);
}

运行时启用加载器:

node --experimental-loader ./trace-loader.mjs src/index.ts

如果使用ts-node,命令调整为:

ts-node --experimental-loader ./trace-loader.mjs src/index.ts

方案2:Vite 插件(前端Vite项目)

修改vite.config.ts,添加自定义插件自动注入日志:

import { defineConfig } from 'vite';

let count = 0;

export default defineConfig({
  plugins: [
    {
      name: 'trace-file-execution',
      transform(code, id) {
        if (id.includes('src/') && id.endsWith('.ts')) {
          const filePath = id.replace(process.cwd(), '');
          // 在文件开头插入日志代码
          return `console.log('-> ${++count}. ${filePath}');\n${code}`;
        }
        return code;
      }
    }
  ]
});

之后正常执行npm run dev,控制台会自动按顺序输出文件加载日志。

方案3:Webpack 插件(前端Webpack项目)

修改webpack.config.js,添加插件批量注入日志:

module.exports = {
  // 其他配置...
  plugins: [
    {
      apply(compiler) {
        let count = 0;
        compiler.hooks.compilation.tap('TraceFileExecution', (compilation) => {
          compilation.hooks.processAssets.tap(
            { 
              name: 'TraceFileExecution', 
              stage: compilation.PROCESS_ASSETS_STAGE_ADDITIONS 
            },
            (assets) => {
              Object.keys(assets).forEach(assetPath => {
                if (assetPath.startsWith('src/') && assetPath.endsWith('.ts')) {
                  const source = assets[assetPath].source();
                  const tracedSource = `console.log('-> ${++count}. ${assetPath}');\n${source}`;
                  assets[assetPath] = {
                    source: () => tracedSource,
                    size: () => tracedSource.length
                  };
                }
              });
            }
          );
        });
      }
    }
  ]
};

执行npm run dev后,控制台会按文件执行顺序输出日志。

内容的提问来源于stack exchange,提问作者Nima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 02:16:14