Laravel Elixir extension for generating AngularJS an templateCache module
npm install laravel-elixir-ngtemplatecacheLaravel elixir extension for generation angularjs templatecache module.
Read more about templateCache
* Angularjs API documentation: https://docs.angularjs.org/api/ng/service/$templateCache
* gulp-angular-templatecache: https://github.com/miickel/gulp-angular-templatecache
* Generate template cache module
* So the angularjs could load all template with one http request
* Compress html in production mode
* Generate sourcemap
```
npm install --save-dev laravel-elixir-ngtemplatecache
`javascript
var elixir = require('laravel-elixir');
require('laravel-elixir-ngtemplatecache');
elixir(function(mix) {
mix.ngTemplateCache();
});
`
All arguments all optional, meaning of them:
- src - template file pattern, these files located inside the base directory and these will be aggregated into one angularjs module, default value: /*/.htmloutputDir
- - where to put the generated module, default value: elixir.config.jsOutput which means public/js if you left untoched the elixir configurationbaseDir
- - base directory for searching template files, default value: elixir.config.assetsDir + 'templates' which means resources/assets/templates in case you haven't configured the elixir in another wayoptions
- - configuration options for this plugin and for these 3rdparty libraries used by the plugin.templateCache
- - This plugin use the [gulp-angular-templatecache]https://github.com/miickel/gulp-angular-templatecache#api) for the templatecache module generation. You can configure that plugin here. Default options:`
`
{
standalone: true
}
htmlmin
- - Options for html minification, you find possible parameter in the html-minifier documentation. Default options:`
`
{
collapseWhitespace: true,
removeComments: true
}
`javascript
var elixir = require('laravel-elixir');
require('laravel-elixir-ngtemplatecache');
elixir(function(mix) {
mix.ngTemplateCache('/*/.html', 'public/js', 'resources/assets/templates', {
enabled: {
htmlmin: true // in production, false in development mode
},
templateCache: {
standalone: true
},
htmlmin: {
collapseWhitespace: true,
removeComments: true
}
});
});
`
Include the templates file into your html:
`html`templates
And then add the module to the main module of your angularjs application:
`javascript`
angular.module('app', ['templates', '...']);
Use the template:
`html`BASEDIR/foo/bar.html
This will require a file , so you don't have to put the BASEDIR` inside the url.
__0.3.1__
- Added config option to toggle html-min usage
__0.3.0__
- Refactor path handling to get the ability to ignore files with gulp/glob patterns
__0.2.0__
- Upgrade to laravel-elixir 3.0
- Upgrade dependencies
__0.1.0__
- Initial release
- Tests
- Source code documentation
MIT