2015-09-19 9 views
6

Vorrei utilizzare webpack-dev-server per la mia applicazione Laravel di base. Da official Webpack docs ho appreso quanto segue:Configurazione di Webpack per funzionare in un'applicazione Laravel

Si consiglia di eseguire un server di backend o una simulazione di esso in fase di sviluppo. Non si dovrebbe utilizzare webpack-dev-server come back-end. Il suo solo scopo è di servire asset statici (webpacked).

È possibile eseguire due server affiancati: il server webpack-dev e il server di backend .

Nella parte inferiore della pagina viene fornito un esempio su come ottenerlo. Ho seguito e sono rimasto bloccato con due messaggi di errore. Questo è il mio tentativo di integrare Webpack in un'applicazione Laravel.

webpack.config.js

var path = require("path"); 
 

 
module.exports = { 
 
    context: path.resolve('resources'), 
 
    entry: [ 
 
     './assets/js/app.js' 
 
    ], 
 
    output: { 
 
     path: path.resolve('public/assets/'), 
 
     publicPath: 'http://localhost:8080/assets/', 
 
     filename: "bundle.js" 
 
    }, 
 
    devServer: { 
 
     contentBase: 'public', 
 
     hot: true, 
 
     proxy: { 
 
      "*": "http://laravel.dev/" 
 
     } 
 
    } 
 
};

app.blade.php

<!doctype html> 
 
<html lang="en"> 
 
<head> 
 
    <meta charset="UTF-8"> 
 
    <title>Learning Laravel</title> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> 
 
</head> 
 

 
<body> 
 
    <div class="container"> 
 
     @yield('content') 
 
    </div> 
 

 
    @yield('footer') 
 
    <script src="http://localhost:8080/assets/bundle.js"/> 
 
</body> 
 

 
</html>

[email protected]:~/learning-laravel$ webpack-dev-server --inline 

uscita della console:

http://localhost:8080/ 
webpack result is served from http://localhost:8080/assets/ 
content is served from public 
Hash: 3346964212f5b22513c6 
Version: webpack 1.12.2 
Time: 347ms 
    Asset Size Chunks    Chunk Names 
bundle.js 228 kB  0 [emitted] main 
chunk {0} bundle.js (main) 213 kB [rendered] 
    [0] multi main 52 bytes {0} [built] [1 error] 
    [1] /usr/lib/~/webpack-dev-server/client?http://localhost:8080 2.14 kB {0} [built] 
    [2] (webpack)/~/node-libs-browser/~/url/url.js 22.3 kB {0} [built] 
    [3] (webpack)/~/node-libs-browser/~/punycode/punycode.js 14.6 kB {0} [built] 
    [4] (webpack)/buildin/module.js 251 bytes {0} [built] 
    [5] (webpack)/~/node-libs-browser/~/url/~/querystring/index.js 127 

...

[61] ./resources/assets/js/app.js 103 bytes {0} [built] 
    [62] ./resources/assets/js/login.js 28 bytes {0} [built] 

ERROR in multi main 
Module not found: Error: Cannot resolve module 'webpack/hot/dev-server' in /home/vagrant/learning-laravel/resources 
@ multi main 
webpack: bundle is now VALID. 

Sto usando Homestead. L'applicazione è servita su http://laravel.dev/. Quindi la mia domanda è come far funzionare i due server (il webpack-dev-server e il backend-server) fianco a fianco. Cosa mi manca?

+0

Aiuta a rimuovere completamente 'proxy' da' devServer'? Ho praticamente la stessa configurazione e funziona. Naturalmente puoi ancora usare http://learning-laravel.dev:8888 o simili per accedere al tuo sito. – bernhardw

risposta

0

Quello che ti manca è semplice, devi proxy webpack-dev-server sotto il server di backend Laravel (route/assets per esempio).

Per fare ciò, vi permetto di controllare http-proxy, Express middleware e anche strumenti CLI socat/netcat.

Problemi correlati