2016-12-24 3 views
1

Ich habe eine Strukturdatei wie folgt:Ist der Webpack-dev-Server nicht in der Lage, bundle.js im Speicher zu generieren?

Project 
| 
+-- src/ 
| | 
| +-- index.js 
| 
+-- index.html 
| 
+-- webpack.config.js 

src/index.js:

document.write("Hello World."); 

index.html:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>webpack learning</title> 

    <script src="builds/bundle.js"></script> 
</head> 
<body> 

</body> 
</html> 

webpack.config.js:

var path = require('path'); 

module.exports = { 
    entry: './src', 
    output: { 
    path: path.join(__dirname, 'builds'), 
    filename: 'bundle.js', 
    } 
}; 

Wenn ich webpack-dev-server im Projektverzeichnis starte, startet webpack-dev-server normal und druckt "webpack: bundle is now VALID". Wenn ich jedoch einen Browser starte und zu localhost: 8080 gehe, beschwert sich die Konsole, dass bundle.js nicht gefunden wurde. In der Tat gibt es keinen solchen Ordner namens "build" mit bundle.js. Aber erzeugt webpack-dev-server package.js nicht im Speicher? Irgendwelche Konfigurationsprobleme beteiligt?

Antwort

1

Es würde helfen, den Befehl Sie ausführen, aber zu sehen, ob ich bei diesem eine Vermutung nehmen hätte, würde sagen, dass ich Ihnen nicht --content-base Einstellung können https://webpack.js.org/configuration/dev-server/#devserver-contentbase

+0

Und es wäre auch nützlich sein, ausdrücklich zu erklären [ ' output.publicPath'] (https://webpack.github.io/docs/configuration.html#output-publicpath). – robertklep

+0

Wenn ich output.publicPath hinzufüge und es auf "Builds" setze, funktioniert alles gut. Es scheint, dass wenn webpack-dev-server bundle.js im Speicher generiert, diese Datei in das von output.publicPath angegebene Verzeichnis legt und ignoriert, auf welches Verzeichnis "output.path" eingestellt ist. Da output.path so eingestellt ist, dass output.publicPath "Builds" bleibt, wird kein Fehler in der Konsole angezeigt und der Browser gibt "Hello World" aus. –