Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Yii2 Composer Bower Skip Laravel Package

yidas/yii2-composer-bower-skip

Composer helper for Yii2 that lets you install/update yiisoft/yii2 without Bower asset packages or fxp/composer-asset-plugin. Skips bower-asset dependencies to avoid “no matching package found” errors; keep existing vendor assets or none at all.

View on GitHub
Deep Wiki
Context7

Getting Started

Minimal Steps

  1. Installation:

    composer require yidas/yii2-composer-bower-skip --dev
    

    Add the package to your require-dev in composer.json if not using globally.

  2. First Use Case:

    • If you're working with Yii2 and want to skip Bower dependencies during composer update or composer install, this package is a quick fix.
    • Place the package in your project’s composer.json under extra:
      "extra": {
          "asset-installer-yii": "yidas/yii2-composer-bower-skip"
      }
      
    • Run composer update or composer install—Bower assets will now be skipped.
  3. Where to Look First:


Implementation Patterns

Usage Patterns

  1. Skipping Bower in Yii2 Projects:

    • Use this package when you don’t need Bower (e.g., using npm, CDN, or manual asset management).
    • Ideal for CI/CD pipelines where Bower isn’t available or required.
  2. Integration with Laravel (Indirectly):

    • If you’re using Yii2 as a microservice or legacy integration with Laravel, this package helps avoid Bower conflicts.
    • Example workflow:
      # In a Laravel project with Yii2 components:
      composer require yidas/yii2-composer-bower-skip --dev
      composer install --prefer-dist --no-dev  # Skip Bower in production
      
  3. Custom Asset Pipelines:

    • Pair with Laravel Mix/Vite or npm scripts to manage assets separately.
    • Example composer.json:
      "extra": {
          "asset-installer-yii": "yidas/yii2-composer-bower-skip",
          "installer-paths": {
              "web/assets/{$name}": ["yii2-vendor/*"]
          }
      }
      

Workflows

  • Development:

    • Use composer install with --prefer-source to test Bower-skipping behavior.
    • Manually symlink or copy assets from Bower to web/assets/ if needed.
  • Production:

    • Ensure composer install --no-dev skips Bower entirely.
    • Verify asset paths in Yii2 config (@web/assets/...) still resolve correctly.

Integration Tips

  • Laravel-Yii2 Hybrid:

    • If using Yii2 models/controllers in Laravel, ensure asset paths are absolute (e.g., public_path('assets/...')).
    • Avoid mixing Yii2’s AssetManager with Laravel’s Asset helper in the same view.
  • Docker/Containerized Environments:

    • Add this package to your Dockerfile for consistent Bower-free builds:
      RUN composer require yidas/yii2-composer-bower-skip --dev
      

Gotchas and Tips

Pitfalls

  1. Broken Asset Paths:

    • If Yii2 widgets/views hardcode Bower paths (e.g., //bower_components/...), they’ll fail.
    • Fix: Use Yii2’s AssetBundle or rewrite paths to @web/assets/....
  2. Composer Cache Issues:

    • After installing, clear Composer’s cache:
      composer clear-cache
      
    • If composer install still pulls Bower, check for conflicting asset-installer-yii configs.
  3. Yii2 Version Mismatch:

    • This package targets Yii2 ≤ 2.0.14. Newer Yii2 versions may use yii2-asset differently.
    • Workaround: Pin Yii2 to a compatible version in composer.json.
  4. Bower Still Runs in Some Cases:

    • If using composer update with --prefer-source, Bower might still trigger.
    • Debug: Run with -vvv to see asset installer logs.

Debugging

  • Check Installed Asset Installer:

    composer show --installed | grep "asset-installer"
    

    Ensure yidas/yii2-composer-bower-skip appears.

  • Verify composer.json: Look for:

    "extra": {
        "asset-installer-yii": "yidas/yii2-composer-bower-skip",
        "yii2-composer-bower-skip": true  // Some versions require this
    }
    

Config Quirks

  • Legacy Yii2 Projects:

    • Older projects might use bower-asset/ in vendor/. Delete or symlink manually:
      rm -rf vendor/bower-asset/
      ln -s web/assets/ vendor/bower-asset/
      
  • Custom Asset Directories:

    • Override Yii2’s asset path in config/web.php:
      'components' => [
          'assetManager' => [
              'basePath' => '@web/assets',
              'baseUrl'  => '/assets',
          ],
      ],
      

Extension Points

  • Replace with Modern Tools:

    • For new projects, consider:
      • npm + Laravel Mix: Replace Bower entirely with npm.
      • Yii2 + AssetManager: Use yii2-asset package for CDN/remote assets.
    • Example composer.json for npm integration:
      "extra": {
          "asset-installer-yii": "yidas/yii2-composer-bower-skip",
          "installer-paths": {
              "web/assets/{$name}": ["node_modules/{$name}"]
          }
      }
      
  • Post-Install Scripts:

    • Add a post-install-cmd to copy assets from npm to Yii2’s expected location:
      "scripts": {
          "post-install-cmd": [
              "php artisan asset:publish --tag=public --force",
              "cp -r node_modules/bootstrap/dist/css bootstrap.css web/assets/"
          ]
      }
      
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky
spatie/mailcoach-vapor