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

Azure构建Next/NX应用启动报错:严格模式不允许八进制转义序列

Next.js/NX应用Azure构建后启动报错:八进制转义序列不允许在严格模式下

问题现象

Azure流水线构建Next.js/NX应用成功,但启动时抛出语法错误:

SyntaxError: Octal escape sequences are not allowed in strict mode.
at Object.compileFunction (node:vm:360:18)
at wrapSafe (node:internal/modules/cjs/loader:1088:15)
at Module._compile (node:internal/modules/cjs/loader:1123:27)
at Module._extensions..js (node:internal/modules/cjs/loader:1213:10)
at Module.load (node:internal/modules/cjs/loader:1037:32)
at Module._load (node:internal/modules/cjs/loader:878:12)
at Module.require (node:internal/modules/cjs/loader:1061:19)
at require (node:internal/modules/cjs/helpers:103:18)
at Object.<anonymous> (E:\xxx\dist\apps\launchpad-app\next.config.js:2:16)
at Module._compile (node:internal/modules/cjs/loader:1159:14)

问题根源

排查发现with-nx.js文件中workspaceRoot的路径未正确转义,代码如下:

function getWithNxContext() {
return {
workspaceRoot: 'D:\a\1\s',
libsDir: 'libs'
}

其中\a和\1被识别为八进制转义序列,违反严格模式规则,正确路径应为D:\\a\\1\\s。

解决方法

方案1:通过环境变量指定转义后的路径

修改Azure Pipeline的PowerShell步骤,显式设置NX_WORKSPACE_ROOT环境变量,覆盖默认路径:

- powershell: |
    $env:NX_WORKSPACE_ROOT = "D:\\a\\1\\s"
    npm install
    npm ci
    npm run buildprod
  displayName: 'Build application'

方案2:在构建命令中传入转义后的路径

修改package.json中的buildprod命令,添加--workspace-root参数(注意JSON中需四层反斜杠转义):

"buildprod": "nx run app:build:production --skip-nx-cache --workspace-root=\"D:\\\\a\\\\1\\\\s\"",

方案3:切换至Linux构建代理

将Azure流水线的代理镜像改为Linux系统(如ubuntu-latest),Linux使用正斜杠作为路径分隔符,从根源避免转义问题:

pool:
  vmImage: 'ubuntu-latest'

方案4:配置NX工作区路径规则

在项目根目录的nx.json中添加workspaceLayout配置,确保NX生成路径时自动处理转义:

{
  "workspaceLayout": {
    "appsDir": "apps",
    "libsDir": "libs"
  }
}

附:原构建配置文件

Azure Pipeline的azure-pipelines.yml

trigger:
- master

pool:
  vmImage: 'windows-2022'

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '18.x'
  displayName: 'Install Node.js'

- powershell: |
    npm install
    npm ci
    npm run buildprod
  displayName: 'Build application'

package.json中的构建命令

"buildprod": "nx run app:build:production --skip-nx-cache",

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 17:05:18