by spatie

A Blade directive to export variables to JavaScript

442 Stars 31 Forks Last release: about 1 month ago (2.5.1) MIT License 111 Commits 22 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

A Blade directive to export variables to JavaScript

Latest Version on Packagist Software License GitHub Workflow Status Check & fix styling Total Downloads

This package contains a Blade directive to export values to JavaScript.

Here's an example of how it can be used:

@javascript('key', 'value')

The rendered view will output:


So in your browser you now have access to a key variable:

console.log(key); //outputs "value"

Spatie is a webdesign agency based in Antwerp, Belgium. You'll find an overview of all our open source projects on our website.

Support us

Learn how to create a package like this one, by watching our premium video course:

Laravel Package training

We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products.

We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall.


You can install the package via composer:

composer require spatie/laravel-blade-javascript

The package will automatically register itself.

Optionally the config file can be published with

php artisan vendor:publish --provider="Spatie\BladeJavaScript\BladeJavaScriptServiceProvider" --tag="config"

This is the contents of the published config file:

return [

 * All passed values will be present in this JavaScript namespace. Set this to an empty string
 * to use the window object.
'namespace' => '',


If you want to customize the generated

 tag you can publish and override the used view.
php artisan vendor:publish --provider="Spatie\BladeJavaScript\BladeJavaScriptServiceProvider" --tag="views"

After this you can edit the published view

. This is usefull to add the
or a CSP


With the package installed you can make use of a

Blade directive.
@javascript('key', 'value')

The rendered view will output:


You can also use a single argument:

@javascript(['key' => 'value'])

This will also output:


When setting the namespace to eg

in the config file this will be the output:


Please see CHANGELOG for more information what has changed recently.


$ composer test


Please see CONTRIBUTING for details.


If you discover any security related issues, please email [email protected] instead of using the issue tracker.


This repository contains some code from the laracasts/PHP-Vars-To-Js-Transformer package written by Jeffrey Way.


The MIT License (MIT). Please see License File for more information.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.