Blank editor missing public/scripts/manifest.assets.php

This site was built with Sage 10.0.0-beta.1 and was working nicely for a while, but recently getting the following error:

Asset [/path/to/public/scripts/manifest.asset.php] not found.

I think since we’re not adding any React/Gutenberg components, just removing the following block from app/setup.php is fine:

    if ($manifest = asset('scripts/manifest.asset.php')->load()) {
        wp_enqueue_script('sage/vendor.js', asset('scripts/vendor.js')->uri(), ...array_values($manifest));
         //etc...
    }

But I’m also wondering where manifest.asset.php is supposed to come from.

Neither yarn build nor composer install generates it.

I know it’s a pretty old beta at this point and it looks like the toolset has evolved quite a bit, so hoping someone recalls.

Are you still using mix? If so it’d come from mix.extract() in your mix config.

Thank you.

You mean in Laravel Mix? Looks like it:

"laravel-mix": "6.0.19",
const mix = require('laravel-mix');
require('@tinypixelco/laravel-mix-wp-blocks');

I’m not seeing a reference to manifest.asset.php in webpack.mix.js. Would I have to create one?

mix
  .setPublicPath('./public')
  .browserSync('example.test');

mix
  .sass('resources/styles/app.scss', 'styles')
  .sass('resources/styles/editor.scss', 'styles')
  .options({
    processCssUrls: false,
    postCss: [require('tailwindcss')],
  });

mix
  .js('resources/scripts/app.js', 'scripts')
  .js('resources/scripts/customizer.js', 'scripts')
  .blocks('resources/scripts/editor.js', 'scripts')
  .autoload({ jquery: ['$', 'window.jQuery'] })
  .extract();

mix
  .copyDirectory('resources/images', 'public/images')
  .copyDirectory('resources/fonts', 'public/fonts');

mix
  .sourceMaps()
  .version();

Actually mix-manifest.json is what is created by .extract() - I forgot.

I think manifest.asset.php might get generated by .blocks() which if you’re not using you can just get rid of - but since you have .blocks() defined in Mix’s config file it should be getting generated :thinking: - is editor.js empty?

Not empty:

import '@wordpress/edit-post';
import domReady from '@wordpress/dom-ready';
import { unregisterBlockStyle, registerBlockStyle } from '@wordpress/blocks';

domReady(() => {
  unregisterBlockStyle('core/button', 'outline');

  registerBlockStyle('core/button', {
    name: 'outline',
    label: 'Outline',
  });
});

BTW, I’m excited to (a few years behind the curve) start creating some blocks. :joy: :sweat_smile:

Even removing .blocks('resources/scripts/editor.js', 'scripts') produces the same error.

Is the idea that webpack compiles a php file from the contents of the editor.js file?