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

执行nx serve命令时Nx Express的webpack构建失败

Node.js 18 + Nx Express 启动报错解决办法

机器运行Node.js 18.16.0,配置了包含React的新Nx工作区后添加Express,React应用构建运行正常,但启动Express时出现以下错误:

Error: Only URLs with a scheme in: file and data are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'
at new NodeError (node:internal/errors:399:5)
at throwIfUnsupportedURLScheme (node:internal/modules/esm/resolve:1059:11)
at defaultResolve (node:internal/modules/esm/resolve:1135:3)
at nextResolve (node:internal/modules/esm/loader:163:28)
at ESMLoader.resolve (node:internal/modules/esm/loader:838:30)
at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18)
at ESMLoader.import (node:internal/modules/esm/loader:525:22)
at importModuleDynamically (node:internal/modules/cjs/loader:1186:29)
at importModuleDynamicallyWrapper (node:internal/vm/module:429:21)
at importModuleDynamically (node:internal/vm:106:46)

以下是几个可行的解决方向:

  • 调整package.json模块类型:检查Express项目的package.json,如果设置了"type": "module",改成"commonjs";如果需要保留ESM格式,确保所有绝对路径导入都加上file://前缀(Windows系统下注意路径格式转换)。
  • 修改Webpack输出配置:在Express项目的webpack.config.js中,添加output.libraryTarget配置为'commonjs2',让打包产物符合Node.js CommonJS规范:
    module.exports = {
      // 其他已有配置
      output: {
        libraryTarget: 'commonjs2',
        filename: '[name].js'
      }
    };
    
  • 更新Nx启动参数:在项目的project.json里,给Express的serve命令添加runtime参数,指定ESM加载器:
    {
      "targets": {
        "serve": {
          "executor": "@nx/express:node",
          "options": {
            "buildTarget": "your-express-app:build",
            "runtimeArgs": ["--loader", "ts-node/esm"]
          }
        }
      }
    }
    
  • 降级Nx依赖版本:当前使用的@nx/express@16.1.4、@nx/webpack@16.1.4存在ESM兼容bug,可尝试降级到16.0.x版本,执行命令:
    npm install @nx/express@16.0.0 @nx/webpack@16.0.0 --save-dev
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 02:10:06