Installation Add the package via Composer in your Laravel project (if applicable, though this is primarily a Craft CMS asset package):
composer require craftcms/cms-assets
Note: This package is designed for Craft CMS, not Laravel. If integrating with Laravel, ensure compatibility with Craft’s asset pipeline or use its compiled assets directly.
Locate Assets
The package provides compiled assets (CSS, JS, fonts) for Craft CMS. Check the resources/assets or web/assets directory (depending on the subtree split) for:
css/ (e.g., craft.css, control-panel.css)js/ (e.g., craft.js, util.js)fonts/ (e.g., Craft’s icon fonts)First Use Case
{{ css('assets/css/craft.css') }}
{{ js('assets/js/craft.js') }}
<link href="{{ asset('vendor/craftcms/cms-assets/css/craft.css') }}" rel="stylesheet">
<script src="{{ asset('vendor/craftcms/cms-assets/js/craft.js') }}"></script>
Asset Integration
php artisan vendor:publish --tag=craft-assets
Then customize in resources/assets/craft/.Customization
craft.scss (if available) by importing it in your main SASS file:
@import 'vendor/craftcms/cms-assets/scss/craft';
Craft object (if available) or extend its modules.Build Process
webpack.mix.js:
mix.sass('resources/assets/craft/custom.scss', 'public/assets')
.js('resources/assets/craft/custom.js', 'public/assets')
.alias({
'craft-assets': path.resolve(__dirname, 'vendor/craftcms/cms-assets')
});
Asset Versioning
<link href="{{ asset('vendor/craftcms/cms-assets/css/craft.css?v='.filemtime(public_path('vendor/craftcms/cms-assets/css/craft.css')) }}" rel="stylesheet">
your-plugin/assets/ and referencing them via getBasePath().composer.json autoloading to expose assets:
"extra": {
"craft-assets": {
"css": "vendor/craftcms/cms-assets/css",
"js": "vendor/craftcms/cms-assets/js"
}
}
Craft-Specific Dependencies
{{ asset }} Twig function). In Laravel, manually link assets or mock the function:
// In a Laravel service provider
Blade::directive('asset', function ($expression) {
return "<?php echo asset($expression); ?>";
});
Asset Paths
Version Conflicts
composer.json for conflicts:
composer why craftcms/cms-assets
Missing Files
control-panel.css) may be omitted. Verify the dist/ or web/ folder in the package.php artisan cache:clear
php artisan config:clear
php artisan vendor:publish --tag=craft-assets --force
Custom Assets
php artisan vendor:publish --tag=craft-assets --force
Then modify resources/assets/craft/css/craft.css.Dynamic Asset Loading
@if (request()->is('admin*'))
{{ asset('vendor/craftcms/cms-assets/css/control-panel.css') }}
@endif
Webpack Integration
copy-webpack-plugin to include Craft assets in your Laravel build:
const CopyWebpackPlugin = require('copy-webpack-plugin');
mix.copy('vendor/craftcms/cms-assets/css', 'public/vendor/craft/css');
/craft-assets) to avoid conflicts.mix.sass('resources/assets/craft/custom.scss', 'public/assets')
.options({ processCssUrls: false });
How can I help you explore Laravel packages today?