Open
Description
Publishing (dev:publish
) doesn't work on Windows (Windows 11, Node.js 22.15.1, compute-js-static-publish 7.0.1).
Steps to Reproduce
- Follow Quick Start instructions on Windows: https://github.com/fastly/compute-js-static-publish?tab=readme-ov-file#-quick-start
Expected Behavior
npm run dev:publish
succeeds
Actual Behavior
npm run dev:publish
produces the following error:
> [email protected] dev:publish
> npx @fastly/compute-js-static-publish publish-content --local
🧑💻Fastly Compute JavaScript Static Publisher (Management mode)
🚀 Publishing content...
Working on local simulated KV Store...
❌ Can't load static-publish.rc.js
Run this from a compute-js-static-publish compute-js directory.
Unable to load ./static-publish.rc.js
Analysis
An error is being thrown in loadStaticPublisherRcFile when importing static-publish.rc.js. The catch block swallows the error, but here's what it is if I log it:
Error [ERR_UNSUPPORTED_ESM_URL_SCHEME]: Only URLs with a scheme in: file, data, and node are supported by the default ESM loader. On Windows, absolute paths must be valid file:// URLs. Received protocol 'c:'
at throwIfUnsupportedURLScheme (node:internal/modules/esm/load:209:11)
import
is unable to accept Windows absolute paths, which path.resolve
produces on Windows. The solution is to use pathToFileURL(filePath).href
to convert the absolute path to a file:// URL, or (better?) use path.posix.resolve
instead of path.resolve
.
This fix needs to be applied both to loadStaticPublisherRcFile and loadPublishContentConfigFile.
Metadata
Metadata
Assignees
Labels
No labels