[@faustwp/cli] Bug: fetchBlockFiles returns empty Array while running faust blockset on Windows
Description
Hello!
I have been running faust blockset command and every time my .faust folder would only contain these files:
├── .faust
│ ├── blocks
│ │ ├── manifest.json
│ ├── build
│ │ ├── MyCustomBlock
│ │ │ ├── block.json
│ │ │ ├── index.asset.php
│ │ │ ├── index.js
│ │ │ ├── index.js.map
│ ├── blocks.zip
block.zip only contains manifest.json with this kind of data:
{
"blocks": [],
"timestamp": "2024-02-15T17:42:51.653Z"
}
I have been doing some discovery on why this happens and discovered that the issue lies in this function: \node_modules@faustwp\cli\dist\blockset.js:53
/**
* Fetches paths to all block.json files while ignoring node_modules.
*
* @returns {Promise<string[]>} - An array of paths to block.json files.
*/
export async function fetchBlockFiles() {
return glob(`${FAUST_BUILD_DIR}/**/block.json`, {
ignore: IGNORE_NODE_MODULES,
});
}
FAUST_BUILD_DIR contained the path to Faust Build folder in the Windows format ( \project-name.faust\ ) and based on what I researched, a glob pattern should be in POSIX format. (//). Since glob could not process this path correctly, fetchBlockFiles() would always return empty array.
I have fixed it in my local environment by formatting FAUST_BUILD_DIR with .replace(/\\/g, '/') and faust blockset has started to perform the script and detect blocks correctly
Steps to reproduce
- Clone the
faustwp-getting-startedexample project - "blockset": "faust blockset" in the package.json
- npm run blockset
- The blocks generated by @faustwp/blocks would not appear in WP, .faust/blocks folder only contains manifest.json with blocks: [], .zip archive only contains manifest.json
Additional context
No response
@faustwp/core Version
2.1.2
@faustwp/cli Version
2.0.0
FaustWP Plugin Version
1.2.1
WordPress Version
6.4.3
Additional environment details
@faustwp/blocks: 2.0.0 Windows 11 Home Version 22H2
Please confirm that you have searched existing issues in the repo.
- [X] Yes
Hey @floretsky thank you for the report. Would you be able to provide a PR for this?