2017-05-02 5 views
0

Wir versuchen, HTML-Make-up zu bauen. Wir haben nächste Dateien:Cant integrieren Laravel Mix mit Unterstrich-Vorlage-Loader

Ressourcen/assets/htmlSrc/example.html:

<html lang="en"> 
<body> 
    <%= "test" %> 
    @require('partial/header.html') 
    <div>Body</div> 
</body> 
</html> 

Ressourcen/assets/htmlSrc/partial/header.html:

<div>test header</div> 

Unsere webpack.mix.js:

const {mix} = require('laravel-mix'); 

var HtmlWebpackPlugin = require('html-webpack-plugin') 
var CleanWebpackPlugin = require('clean-webpack-plugin') 
var path = require('path') 

mix.js('resources/assets/js/app.js', 'public/js') 
    .sass('resources/assets/sass/app.scss', 'public/css') 
    .browserSync('http://myhost'); 

webpackConfig = { 
    module: { 
     loaders: [ 
      { 
       test: /\.html$/, 
       loader: 'underscore-template-loader' 
      } 
     ] 
    }, 
    plugins: [ 
     new CleanWebpackPlugin(path.join(__dirname, 'resources/assets/htmlResult')) 
    ] 
}; 

/** 
* Mackup rendering 
*/ 
webpackConfig.plugins.push(new HtmlWebpackPlugin({ 
    filename: path.join(__dirname, 'resources/assets/htmlResult/example.html'), 
    template: './resources/assets/htmlSrc/example.html' 
})); 

mix.webpackConfig(webpackConfig); 

Aber Ergebnisdatei Ressourcen/assets/htmlResult/example.html: sieht nicht wie erwartet:

<html lang="en"><head><link href="/css/app.css" rel="stylesheet"></head> 
<body> 
    <%= "test" %> 
    @require('partial/header.html') 
    <div>Body</div> 
<script type="text/javascript" src="/js/app.js"></script></body> 
</html> 

Sieht aus wie Abschnitt loaders übersprungen wurde. Was ist falsch?

Antwort

0

Works rules statt loaders mit:

webpackConfig = { 
    module: { 
     rules: [ 
      { 
       test: /\.html$/, 
       loader: 'underscore-template-loader' 
      } 
     ] 
    }, 
    plugins: [ 
     new CleanWebpackPlugin(path.join(__dirname, 'resources/assets/htmlResult')) 
    ] 
};