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

Webpack打包Node脚本运行报错:Cannot find module 'node:process'

webpack打包Node脚本报错Cannot find module 'node:process' 解决方案

报错Error: Cannot find module 'node:process'的核心原因是当前运行打包后文件的Node.js版本不支持node:前缀的核心模块引入语法,该语法是Node.js v14.18.0、v16.0.0及以上版本才正式支持的,低于该版本运行时就会把node:process识别为第三方包而非内置模块,从而抛出找不到模块的错误。

可根据实际场景选择以下方案解决:

  • 方案1:升级Node.js版本
    直接将运行环境的Node.js升级到v14.18.0以上的稳定版本,优先选择长期支持的v18.x、v20.x LTS版本,即可原生支持node:前缀语法,无需修改任何配置。
  • 方案2:修改webpack配置,替换node:前缀
    如果无法升级Node版本,可以在webpack配置中增加别名替换规则,将所有带node:前缀的内置模块引用替换为不带前缀的写法:
    export default {
      // 原有配置保持不变,新增resolve配置
      resolve: {
        alias: {
          'node:process': 'process'
        }
      }
    }
    
    如果存在多个node:前缀的模块(如node:fs、node:path等)都报错,可以使用NormalModuleReplacementPlugin做批量替换:
    import { NormalModuleReplacementPlugin } from 'webpack';
    
    export default {
      // 原有配置保持不变,新增plugins配置
      plugins: [
        new NormalModuleReplacementPlugin(/^node:(.*)$/, (resource) => {
          resource.request = resource.request.replace(/^node:/, '');
        })
      ]
    }
    
  • 方案3:将Node内置模块标记为外部依赖
    Node环境本身已内置process、fs等核心模块,不需要webpack打包进产物,可以通过externals配置将这类模块标记为外部依赖,webpack会保留原有的模块引用逻辑,不做打包处理:
    export default {
      // 原有配置保持不变,新增externals配置
      externals: ({request}, callback) => {
        if (/^node:/.test(request)) {
          return callback(null, request.replace(/^node:/, 'commonjs '));
        }
        callback();
      }
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:45:05