2016-04-28 20 views
1

haben so etwas wie die folgenden (angepasst von OReilly E- Modul und Asset-Bündelung mit webpack http://my.safaribooksonline.com/video/web-development/9781771375887)Warum funktioniert mein Jade Webpack Loader nicht?

const viewout = document.querySelector(".view"); 
const view = require('raw!jade-html?pretty=false!../views/index.jade'); 

viewout.innerHTML = view; 

, die funktioniert, aber ich möchte Jade in meiner webpack Konfiguration haben. Also habe ich versucht die folgenden meiner Ladern Array hinzuzufügen:

{ 
     test: /\.jade$/, 
     include: [ 
     Path.resolve(process.cwd(), 'client/views') 
     ], 
     loader: 'raw!jade-html?pretty=false!' 
} 

und dann habe ich die Aussage erfordern in meiner App-Code ändern zu

const view = require('../views/index.jade'); 

das gibt mir den Fehler

ERROR in ./client/views/index.jade 
Module parse failed: 

Also, um es noch einmal zu wiederholen - der Loader hat geparst und lief gut mit der ursprünglichen require-Anweisung, aber funktioniert nicht, wenn ich es in eine Konfigurationseinstellung mache - was mache ich falsch?

+0

Wenn ich meinen webpack --watch Prozess zu stoppen und neu zu starten ich stattdessen eine Fehlermeldung erhalte Weg in Fehlen dass loszuwerden ich meinen Path.resolve zu ändern, um den vorherigen Lader in Bezug auf sein path.resolve so Pfad .resolve (process.cwd(), '../views'), was mich dann zum FEHLER in ./client/views/index.jade zurückversetzt Modulanalyse fehlgeschlagen: ... Möglicherweise benötigen Sie einen geeigneten Loader zur Handhabung Dieser Dateityp. – user254694

Antwort

1

Dies ist die webpack.config.js, die ich verwendet habe, um das O'Reilly-Beispiel von der Inline-Loader-Syntax zu konvertieren.

const Path = require('path'); 

const config = { 
    entry: { 
    app: ['babel-polyfill','./client/js/app'] 
    }, 
    output: { 
    path: './build', 
    filename: '[name]-bundle.js' 
    }, 
    devtool: 'source-map', 
    module: { 
    loaders:[{ 
     test: /\.js$/, 
     include: [ 
     Path.resolve(process.cwd(), 'client/js') 
     ], 
     loader: 'babel', 
     query: { 
     presets: ['es2015'] 
     } 
    }, 
    { 
     test: /\.jade$/, 
     include: [ 
     Path.resolve(process.cwd(), 'client/views') 
     ], 
     loaders: ['raw', 'jade-html?pretty=true'] 
    }] 
    }, 
    resolve: { 
    extension: ['', '.js'], 
    modulesDirectories: ['node_modules'] 
    } 
}; 

module.exports = config;