Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

AssetMapper #42

Closed
Bredhis opened this issue Oct 19, 2023 · 6 comments
Closed

AssetMapper #42

Bredhis opened this issue Oct 19, 2023 · 6 comments

Comments

@Bredhis
Copy link

Bredhis commented Oct 19, 2023

Hello @Kreyu,

I really like the direction this project is going in and for the great documentation at this early stage, one can only applaud.

Unfortunately, my problem is that the project I want to integrate this bundle into uses AssetMapper and not yarn/npm.

I have not been able to integrate the bundles assets into the importmap.php.
Would it be possible to use this bundle together with the AssetMapper at the moment?

@Kreyu
Copy link
Owner

Kreyu commented Oct 19, 2023

Hey @Bredhis, thank you for the kind words 😊

Personally, I've never used the AssetMapper before, but after some reading, I've added necessary stuff to the bundle (based on this article) in the #43 PR. I'll test it further tomorrow and release a new version.

If you wish to check if those changes are enough, please require the kreyu/data-table-bundle:dev-feature/asset-mapper version, any feedback would help massively.

@Bredhis
Copy link
Author

Bredhis commented Oct 20, 2023

Hey @Kreyu 🙂

Wow, thank you so much for your quick response!

I have installed everything fresh. But unfortunately I get the same error as yesterday, namely this:
An exception has been thrown during the rendering of a template ("Could not find an asset mapper path that points to the "personalization" controller in package "kreyu/data-table-bundle", defined in controllers.json.").

I've tried to investigate a little and the only package in my importmap.php that does not refer to a URL but follows a path is the stimulus-bundle. So I took a look at their package.json.

My guess is what is missing in your bundles package.json are two lines:
"importmap": { […], "@kreyu/data-table-bundle": "path:%PACKAGE%/controllers/batch.js", "@kreyu/data-table-bundle": "path:%PACKAGE%/controllers/personalization.js", }

sortablejs gets added to the importmap.php just fine. 😊

@Kreyu
Copy link
Owner

Kreyu commented Oct 21, 2023

Hey, thanks for the response!

I've checked multiple Symfony UX bundles, and looks like providing individual controllers in the importmap is not necessary. The path is provided by the bundle extension class, like so:

// src/DependencyInjection/KreyuDataTableExtension.php
if ($this->isAssetMapperAvailable($container)) {
    $container->prependExtensionConfig('framework', [
        'asset_mapper' => [
            'paths' => [
                __DIR__ . '/../../assets/controllers' => '@kreyu/data-table-bundle',
            ],
        ],
    ]);
}

Without this part, the error you're describing is raised. The only way I was able to reproduce this, was installing current release, then requiring dev-feature/asset-mapper version without clearing cache (which is weird, since composer typically clears cache at the end) - since the configuration is cached.

After clearing cache, the mapping seems to be working properly:

$ bin/console debug:asset-map

Asset Mapper Paths
------------------

 --------------------------------------------------- -------------------------- 
  Path                                                Namespace prefix          
 --------------------------------------------------- -------------------------- 
  vendor/symfony/ux-autocomplete/assets/dist          @symfony/ux-autocomplete  
  vendor/symfony/stimulus-bundle/assets/dist          @symfony/stimulus-bundle  
  vendor/symfony/ux-turbo/assets/dist                 @symfony/ux-turbo         
  vendor/kreyu/data-table-bundle/assets/controllers   @kreyu/data-table-bundle  <<<<<
  assets                                                                        
 --------------------------------------------------- -------------------------- 

Mapped Assets
-------------

 ---------------------------------------------- --------------------------------------------------- 
  Logical Path                                   Filesystem Path                                    
 ---------------------------------------------- --------------------------------------------------- 
  @symfony/ux-autocomplete/controller.js         vendor/symfony/ux-autoc...sets/dist/controller.js  
  @symfony/stimulus-bundle/controllers.js        vendor/symfony/stimulus...ets/dist/controllers.js  
  @symfony/stimulus-bundle/loader.js             vendor/symfony/stimulus...e/assets/dist/loader.js  
  @symfony/ux-turbo/turbo_controller.js          vendor/symfony/ux-turbo...ist/turbo_controller.js  
  @symfony/ux-turbo/turbo_stream_controller.js   vendor/symfony/ux-turbo...bo_stream_controller.js  
  @kreyu/data-table-bundle/personalization.js    vendor/kreyu/data-table...lers/personalization.js  <<<<<
  @kreyu/data-table-bundle/batch.js              vendor/kreyu/data-table...ts/controllers/batch.js <<<<<

Can you please confirm that this is not an issue related with the caching?

@Bredhis
Copy link
Author

Bredhis commented Oct 23, 2023

Hey! I am very sorry for the extra work I have caused and I feel a bit stupid now.

Even if it wasn't the Symfony cache, your hint was right. The project is in a Docker container and although I have made a new deploy, this cache caused the trouble. So I deleted the image, rebuilt it completely and tadaa, it works. Normally the error messages are a bit clearer, so I know immediately that the vendor directory is not up-to-date. I'm sorry that I didn't think that far ahead and didn't tried basic stuff like this before writing here.

Have a great start to the week!

@Kreyu
Copy link
Owner

Kreyu commented Oct 23, 2023

Hey! No worries, I'm happy that it works, thanks for your time 😄
I'm gonna tag a new release, and hope you'll find the bundle useful.

Cheers!

@Kreyu
Copy link
Owner

Kreyu commented Oct 23, 2023

Available in version 0.15

@Kreyu Kreyu closed this as completed Oct 23, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants