Skip to:

Opened 2 years ago

Closed 5 weeks ago

Last modified 4 weeks ago

#8457 closed task (fixed)

Migrate to @wordpress/scripts

Reported by: imath's profile imath Owned by: imath's profile imath
Milestone: 12.0.0 Priority: normal
Severity: normal Version: 6.0.0
Component: Build/Test Tools Keywords: has-patch

Description (last modified by imath)

Unfortunately unlike Parcel v1, Parcel v2 is not yet supporting library builds (using a global window object for a script). We need this possibility for our shared BP Block components an data store.

We can’t wait longer as v1 is no more maintained and contains node modules with security issues.

I’ve been testing the @wordpress/scripts package for the BP Block Activity Editor feature as a plugin as well as custom Webpack config for the BP Blocks plugin. To fully enjoy the v2 of the block API, I will work on a migration process.

Previous description

Parcel v1 is no longer maintained. I'm going to update it to the last 1.x version. But we'll need to migrate to v2 during next dev cycle.


Change History (15)

#1 @imath
2 years ago

  • Description modified (diff)

#2 @imath
2 years ago

In 12889:

Update Parcel Bundler to v1.12.5

See #8457

#3 @imath
22 months ago

  • Milestone changed from Up Next to 10.0.0

Let's try to progress on it during 10.0.0 dev cycle.

#4 @imath
20 months ago

We can't migrate until this feature is not migrated into Parcel v2

#5 @imath
18 months ago

  • Milestone changed from 10.0.0 to Up Next

We'll have to wait a bit more!

#6 @imath
5 months ago

  • Milestone changed from Up Next to 12.0.0

#7 @imath
3 months ago

  • Description modified (diff)
  • Keywords needs-patch added
  • Summary changed from Migrate to Parcel.js v2 to Migrate to @wordpress/scripts

#8 @imath
2 months ago

In 13440:

BP Blocks: introduce a new $metadata argument to use WP Block API v2

The bp_register_block() array of arguments now accepts a $metadata
argument to inform about the path to a block block.json dir path. If
it's used this function is now is simple wrapper of WordPress's
register_block_type_from_metadata() function.

See #8842
See #8457
Fixes #8855

This ticket was mentioned in Slack in #buddypress by imath. View the logs.

6 weeks ago

This ticket was mentioned in PR #92 on buddypress/buddypress by @imath.

5 weeks ago

  • Keywords has-patch added; needs-patch removed
  • Remove our dependency to ParcelJS
  • Add a dependency to @wordpress/scripts
  • Reorganize BP Blocks directories: they are now located and built into each bp-{component-name}/blocks directory.
  • Reorganize src/js directory: Admin source JS are located in src/js/admin and Blocks source JS are located in src/js/blocks
  • Create a specific webpack.config.js file for Admin scripts and each BP Blocks scripts.
  • Upgrade each BP Block to WP Block API v2 and update all PHP registration code.
  • Update Grunt tasks

Trac ticket:

#11 @imath
5 weeks ago

In 13462:

Migrate from ParcelJS to @wordpress/scripts (Webpack)

  • Remove our dependency to ParcelJS.
  • Add a dependency to @wordpress/scripts
  • Update Grunt tasks in favor of building Modern JS using


See #8457

#12 @imath
5 weeks ago

In 13463:

Use @wordpress/scripts to build BP Blocks and other Modern JS files

  • Reorganize the src/js directory so that all blocks are moved inside a

src/js/blocks/bp-{component-name} directory and all WP Admin scripts
moved inside a src/js/admin/bp-{component-name} directory

  • Create a specific webpack.config.js file for each component’s blocks

and for all scripts used inside the WP Administration.

  • Do not migrate BP Widget blocks transforms functions as Legacy widgets

will be moved from BuddyPress 12.0 to the BP Classic plugin.

  • Update all BP Blocks to use the WP Block API v2.
  • Add a new BP Block collection.
  • Built JavaScript files for blocks are now located inside a blocks

subdirectory of corresponding component's src directories

  • Built JavaScript files for WP Admin scripts are located at the same

place than before.

See #8457

#13 @imath
5 weeks ago

  • Resolution set to fixed
  • Status changed from assigned to closed

In 13464:

Update all BP Blocks & Modern JS PHP registration code

  • Use the metadata argument of the bp_register_block() function to load all BP Blocks JSON files.
  • Get BP Blocks dependencies using the @wordpress/scripts index.asset.php generated files.
  • Although the BP Blocks category has been replaced by the BP Blocks collection, leave the no more used bp_block_category() function in place in case some third party plugins are using it for their custom blocks.
  • PHPUnit tests: make sure to unregister all BP Blocks when using the BP_UnitTestCase->go_to() method.

See #8842
Fixes #8457

#14 @imath
4 weeks ago

In 13465:

Build/tests: add built blocks CSS files to excluded CSS in Grunt tasks

See #8457

This ticket was mentioned in Slack in #buddypress by imath. View the logs.

4 weeks ago

Note: See TracTickets for help on using tickets.