Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/matejsvajger/laravel-mix-pug
Laravel Mix Plugin for compiling Pug/Jade templates.
https://github.com/matejsvajger/laravel-mix-pug
Last synced: 19 days ago
JSON representation
Laravel Mix Plugin for compiling Pug/Jade templates.
- Host: GitHub
- URL: https://github.com/matejsvajger/laravel-mix-pug
- Owner: matejsvajger
- License: mit
- Created: 2017-08-02T12:06:49.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-05-21T15:04:13.000Z (over 2 years ago)
- Last Synced: 2024-10-12T22:53:48.559Z (about 1 month ago)
- Language: JavaScript
- Size: 31.3 KB
- Stars: 21
- Watchers: 3
- Forks: 23
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# laravel-mix-pug
Laravel Mix Plugin for compiling Pug/Jade templates.## Introduction
This package provides a plugin for Laravel Mix to compile pug templates. `laravel-mix-pug` requires Laravel Mix to work. Please follow the instructions on how to use it on the package [repository](https://github.com/JeffreyWay/laravel-mix).
## Usage
Install this package into your project:
```
npm install laravel-mix-pug --save-dev
```
Head over to your `webpack.mix.js` and register it on the Laravel Mix API:```js
let mix = require('laravel-mix');
mix.pug = require('laravel-mix-pug');mix.js('src/app.js', 'dist')
.sass('src/app.scss', 'dist')
.pug('src/*.pug', 'dist')
.setPublicPath('dist');
```## Options
You can also pass in a third optional parameter: *options* object. It accepts two options:### seeds
This is a path to a folder with seed files. Files can be of type `json` or `yaml`. They will be parsed and provided in your pug template locals under the seed file name and then contents.```js
mix.pug('src/*.pug', 'dist', {seeds:'src/seeds'});
```And if you have a file `demo.yml` in there all the content will be available in your template under
```pug
a(href=seed.demo.anchor.link) seed.demo.anchor.name
```### locals
It's possible to pass in an object which will be added to locals in your pug templates:```js
mix.pug('src/*.pug', 'dist', {
locals: {
config: { baseUrl: 'http://my-template.dev/' }
}
});
```and in your pug file:
```pug
link(rel="stylesheet" media="screen" href=`{config.baseUrl}css/app.css`)
script(src=`{config.baseUrl}js/main.js`)
```### pug
You can pass in [pug config options](https://pugjs.org/api/reference.html#options) under `pug` key:```js
mix.pug('src/*.pug', 'dist', {
pug: {
pretty: true,
debug: true
}
});
```### ext && excludePath
It is possible to change to output file extension and exclude part of the path.
i.e.: You want your destination file to be in `resources/assets/views` and the folder structure in there to continue from the `resources/assets/pug/{..}`:```js
mix.pug('resources/assets/pug/*.pug', 'resources/assets/views', {
ext: '.blade.php',
excludePath: 'resources/assets/pug'
});
````## License
Laravel Mix Pug is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT).