2017 © Pedro Peláez
 

package laravel-webpack-assets

Package to use WebpackManifestPlugin in laravel

image

malyusha/laravel-webpack-assets

Package to use WebpackManifestPlugin in laravel

  • Thursday, October 26, 2017
  • by malyusha
  • Repository
  • 1 Watchers
  • 5 Stars
  • 634 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 8 Versions
  • 36 % Grown

The README.md

, (*1)

Laravel Webpack Assets

Package that allows you to include assets from json file, generated by Webpack Manifest Plugin, (*2)

Installation

Require the latest version of package using Composer, (*3)

$ composer require malyusha/laravel-webpack-assets, (*4)

If you are using version of laravel < 5.5, you need to add service provider into your config/app.php file in providers section: * \Malyusha\WebpackAssets\WebpackAssetsServiceProvider::class, (*5)

You can add the WebpackAssets facade in facades section: * 'WebpackAssets' => \Malyusha\WebpackAssets\Facade::class, (*6)

Configuration

To change package configuration you need to publish configuration file:, (*7)

$ php artisan vendor:publish --tag=config, (*8)

This will publish assets_manifest.php file inside your config directory. Configuration file has a few options:, (*9)

  • file - path to manifest.json file, relative to disk path. See disk option;
  • fail_on_load - whether to fail on load assets file. If true - exception will be thrown;
  • disk - where your manifest.json and all assets file are located. See laravel config/filesystems.php -> disks.

Usage

Package provides helper functions to include script and style HTML elements inside blade templates:, (*10)

  • webpack_script($script) - will generate <script src="path_to_script_from_manifest_file"></script>;
  • webpack_style($script- will do the same as webpack_script but for style;
  • webpack($chunkName = null) - will return instance of Asset class if no arguments provided, otherwise returns asset url with host.

Examples

Let's imagine, that you have generated manifest.json file with such content:, (*11)

{
  "app.js": "/assets/1b53147322421b069bf1.js",
  "auth.background.png": "/assets/e60cc0de08eee2256222218425eaa943.png",
  "auth.login.css": "/assets/css/20a7e7e51e1f142b2b1f.css",
  "auth.login.js": "/assets/20a7e7e51e1f142b2b1f.js",
  "auth.password.forgot.css": "/assets/css/280c079c4407fbd0fdca.css",
  "auth.password.forgot.js": "/assets/280c079c4407fbd0fdca.js"
}

Retrieving paths

$webpackAssets = webpack();
// Full urls with hostname of filesystem. E.g. if disk driver is set to `public`, and `url` option
// is env('APP_URL').'/storage'
echo $webpackAssets->url('app.js'); // Output - http://host.dev/storage/assets/1b53147322421b069bf1.js
echo $webpackAssets->url('app.css'); // Output - http://host.dev/storage/assets/css/20a7e7e51e1f142b2b1f.css

// Absolute path for given filesystem. E.g. if disk driver is set to `public` and `root` parameter set to
// storage_path('app/public')
echo $webpackAssets->path('app.js'); // Output - /{project_dir}/storage/app/public/assets/1b53147322421b069bf1.js

// Relative paths, as they're presented inside json file
echo $webpackAssets->chunkPath('app.js'); // Output - /assets/1b53147322421b069bf1.js

Using in blade templates

Whenever you want to output your asset simply write:, (*12)

{!! webpack_script('app.js') !!}

// or

{!! webpack()->image('background.png', 'Background') !!} 
// Output: <img alt="Background" src="http://host.dev/assets/e60cc0de08eee2256222218425eaa943.png">

Raw file contents

When you need to add inline file content, such as css or js wrapped with style or script tags you can now use helper functions for that: webpack_raw_style and webpack_raw_script, or if in object - webpack()->rawStyle() and webpack()->rawScript()., (*13)

{!! webpack_raw_style('css/main.css') !!}

{{-- Or --}}

{!! webpack()->rawStyle('css/main.css') !!}

{{--Output--}}
<style>...content of main.css file...</style>

The Versions

26/10 2017

dev-master

9999999-dev

Package to use WebpackManifestPlugin in laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Avatar malyusha

26/10 2017

dev-dev

dev-dev

Package to use WebpackManifestPlugin in laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Avatar malyusha

26/10 2017

1.0.7

1.0.7.0

Package to use WebpackManifestPlugin in laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Avatar malyusha

24/05 2017

1.0.6

1.0.6.0

Package to use WebpackManifestPlugin in laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Avatar malyusha

24/05 2017

1.0.5

1.0.5.0

Package to use WebpackManifestPlugin in laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Avatar malyusha

24/05 2017

1.0.4

1.0.4.0

Package to use WebpackManifestPlugin in laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Avatar malyusha

28/04 2017

1.0.3

1.0.3.0

Package to use WebpackManifestPlugin in laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Avatar malyusha

27/04 2017

1.0.2

1.0.2.0

Package to use WebpackManifestPlugin in laravel

  Sources   Download

MIT

The Requires

 

The Development Requires

by Avatar malyusha