Ich habe eine statische Website, die Assets .js, .css, .svg und .pngs Dateien hat.Wie ordne ich Website-Assets mit Webpack richtig ein?
Ich versuche, Webpack zu bündeln dann alle zusammen, aber bisher kein Erfolg.
Hier ist was ich bisher habe. Irgendwelche Gedanken? Wenn Sie eine Online-Ressource kennen, schreiben Sie bitte den Link.
Mein Ziel ist es, die Mindestanzahl von HTTP-Anfragen zu haben und alles minimiert zu haben.
'use strict';
const webpack = require('webpack'),
path = require('path'),
glob = require('glob');
let config = {
entry: {
'myPages': glob.sync('./js/**/*.js'),
// 'vendor':[
// 'jquery'
// ],
},
module: {
loaders: [
// CSS: scss, css
{
test: /\.s?css$/,
loaders: ['style', 'css', 'sass', 'postcss-loader']
},
// SVGs: svg, svg?something
{
test: /\.svg(\?.*$|$)/,
loader: 'file-loader?name=/img/[name].[ext]'
},
// Images: png, gif, jpg, jpeg
{
test: /\.(png|gif|jpe?g)$/,
loader: 'file?name=/img/[name].[ext]'
},
// HTML: htm, html
{
test: /\.html?$/,
loader: "file?name=[name].[ext]"
},
// Font files: eot, ttf, woff, woff2
{
test: /\.(eot|ttf|woff2?)(\?.*$|$)/,
loader: 'file?name=/fonts/[name].[ext]'
}
]
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle--[name].js'
},
};
module.exports = config;
Sie verwenden den Dateilader zum Laden von Bildern und Schriftarten. Dadurch bleiben diese Assets immer als separate Dateien erhalten, und Sie erhalten einfach einen aufgelösten Pfad zu diesen Assets. Wenn Sie wirklich alles gebündelt haben möchten, sollten Sie den url-loader verwenden, der alle Bilder und Dateien in base64 strings konvertiert, oder raw-loader, der Ihnen nur den Klartext der Datei zurückgibt. – arkanciscan
Wenn Sie viele Eintragsdateien haben, werden Sie wahrscheinlich das CommonsChunkPlugin verwenden, um Abhängigkeiten zu trennen, die alle Ihre Einträge teilen. Auf diese Weise müssen Benutzer, die von einer Seite zur anderen wechseln, nicht den gesamten Lieferantencode erneut herunterladen. – arkanciscan