Ich habe ein Modul, das eine CSS-Datei hat, bin ich die CSS-Datei wie folgt geladen:Laden css url() Dateien in einem bestimmten Ordner mit webpack
import "photoswipe/dist/default-skin/default-skin.css"
inside "default-skin.css" ein Bild wird wie folgt geladen:
background-image: url("image.png");
Wenn ich die Seite, die Datei „image.png“ ausgeführt wird, bei http://localhost:9000/ (die Wurzel des Projekts) angefordert werden
Wenn ich die image.png kopieren vom Modulpfad zur Wurzel von t er Projekt, alles funktioniert, aber ist schmutzig, um Bilder über die Wurzel des Projekts zu haben.
Ich möchte in der Lage sein, einen Pfad anzugeben, um nach dem Bild zu suchen, wie [root des Projekts]/img, so dass ich das Bild innerhalb des IMG-Ordners und nicht im Stamm haben kann.
Ich möchte nicht den URL() Pfad in der CSS-Datei ändern. Ich kann diese CSS-Datei nicht berühren.
Ich muss wahrscheinlich etwas in meiner Webpack-Konfiguration ändern, aber ich weiß nicht, was webpack sagt, nach Bilddateien im Stammverzeichnis des Projekts zu suchen.
Eine andere Lösung könnte ein Webpack-Plugin sein, das beim Erstellen die Datei aus dem Modulordner in meinen IMG-Ordner kopiert und dort beim Ausführen der Site angefordert wird. Ich weiß nicht, ob eine solche Funktion oder ein solches Plugin existiert.
Das ist meine webpack Konfigurationsdatei:
var webpack = require('webpack');
var WebpackNotifierPlugin = require('webpack-notifier');
"use strict";
module.exports = {
entry: "./source/typescript/Main.ts",
output: {
filename: "./js/bundle.js"
},
devtool: "inline-source-map",
devServer: {
contentBase: ".",
host: "localhost",
port: 9000,
open: true
},
module: {
rules: [
{
test:/\.(s*)css$/,
use: [
{
loader: "style-loader"
},
{
loader: "css-loader",
options: {
url: false
}
},
{
loader: "sass-loader"
}
]
},
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/
},
{
enforce: 'pre',
test: /\.js$/,
loader: "source-map-loader"
},
{
test: /\.(png|jpg|gif|svg|eot|ttf|otf|woff|woff2|json|xml|ico)$/,
use: [{loader: 'file-loader'}]
},
{
test: /\.(csv|tsv)$/,
use: [{ loader: 'csv-loader' }]
},
{
test: /\.exec\.js$/,
use: [{ loader: 'script-loader' }]
},
{
test: require.resolve('jquery'),
use:
[
{
loader: 'expose-loader',
options: 'jQuery'
},
{
loader: 'expose-loader',
options: '$'
}
]
}
]
},
resolve: {
extensions: [ '.tsx', '.ts', '.js' ]
},
plugins: [
new WebpackNotifierPlugin({excludeWarnings: true}),
//new webpack.optimize.UglifyJsPlugin({compress: {warnings: false}}) // Uncoment to minify bundle
]
};
In Ihrem webpack Config, verwenden Sie 'url-loader'? –
Nein, ich benutze keinen Url-Loader. – fermmm
Ich meinte 'url-loader' sorry –