faustjs icon indicating copy to clipboard operation
faustjs copied to clipboard

[@faustwp/cli] Bug: fetchBlockFiles returns empty Array while running faust blockset on Windows

Open floretsky opened this issue 1 year ago • 1 comments

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

  1. Clone the faustwp-getting-started example project
  2. "blockset": "faust blockset" in the package.json
  3. npm run blockset
  4. 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

floretsky avatar Feb 15 '24 17:02 floretsky

Hey @floretsky thank you for the report. Would you be able to provide a PR for this?

theodesp avatar Feb 19 '24 15:02 theodesp