Skip to content

Commit

Permalink
fix(nextjs): fix inlined workspace root in .nx-helpers (#27136)
Browse files Browse the repository at this point in the history
This PR fixes an issue where our `withNx` function for Next.js is
compiled with inlined `workspaceRoot` (to support container
environments). On Windows, we write the `.nx-helpers/with-nx.js` with
the following:

```js
workspaceRoot: 'C:\Users\user\projects\app',
```

The `\u` character result in a Node error: `Invalid Unicode escape
sequence`.

The fix is to escape `\` as `\\`, so when the file is written, the path
is valid and does not cause unicode errors.

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->

## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->

Fixes #18824
  • Loading branch information
jaysoo authored Jul 26, 2024
1 parent 8e596c3 commit 4ab9e6d
Showing 1 changed file with 5 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,11 @@ export function getWithNxContent(
index: getWithNxContextDeclaration.getStart(withNxSource),
text: stripIndents`function getWithNxContext() {
return {
workspaceRoot: '${workspaceRoot}',
workspaceRoot: '${
// For Windows, paths like C:\Users\foo\bar need to be written as C:\\Users\\foo\\bar,
// or else when the file is read back, the single "\" will be treated as an escape character.
workspaceRoot.replaceAll('\\', '\\\\')
}',
libsDir: '${workspaceLayout().libsDir}'
}
}`,
Expand Down

0 comments on commit 4ab9e6d

Please sign in to comment.