2017-01-04 10 views
1

Als neu zu Webpack, könnte die Antwort mich anstarren, aber ich sehe es nicht. Egal, wie ich versuche, sie weiterzugeben, die Optionen für den Dateilader werden nicht gefunden.Webpack-Datei-Loader-Optionen werden nicht erkannt

Ich benutze Datei-Loader und ich versuche, einen publicPath (oder einfach alles, zuerst) als Option zu übergeben. Ich ging in den Quellcode des Datei-Ladeprogramms und fügte ein Protokoll für alle erkannten Optionen hinzu, aber sie sind immer leer.

webpack.config.prod.js

var path = require('path') 
var webpack = require('webpack') 
var HtmlWebpackPlugin = require('html-webpack-plugin') 


module.exports = { 
    entry: [ 
    './src/index.js' 
    ], 
    output: { 
    path: path.join(__dirname, 'dist'), 
    filename: 'idlink-1.1.1.js', 
    publicPath: '' 
    }, 
    plugins: [ 
    new webpack.optimize.OccurenceOrderPlugin(), 
    new webpack.NoErrorsPlugin(), 
    new webpack.optimize.UglifyJsPlugin(), 
    new webpack.DefinePlugin({'process.env.NODE_ENV': '"production"'}) 
    ], 
    module: { 
    loaders: [ 
     { 
     exclude: /node_modules/, 
     loader: 'babel', 
     query: { presets: ['react', 'es2015', 'stage-1'] } 
     }, 
     {test: /\.css$/, loader: "style-loader!css-loader" }, 
     {test: /\.scss$/, loaders: ["style", "css", "sass"]}, 
     {test: /\.less$/, loader: "style-loader!css-loader!less-loader" }, 
     { 
     test: /\.(jpe?g|png|gif|svg|pdf)$/i, 
     loader: "file", 
     options: { publicPath: 'https://apps.ixordocs.be/'} 
     }, 
     {test: /\.gif$/, loader: "url-loader?mimetype=image/png" } 
    ] 
    }, 
} 

ich auch mit loader: "file-loader"

auch versucht haben, als die Optionen als eine Zeichenfolge wie diese

loader: "file?name=[name].[ext]&publicPath=https://apps.ixordocs.be/"

hinzugefügt

Einige Kontextinformationen: Ich möchte keinen festcodierten publicPath in meiner haben, ich möchte ihn dynamisch von einem Parameter holen, der auf dem div platziert ist, in den mein Plugin geladen wird.

Ich habe versucht, mit der __webpack_public_path__ Variable und es funktioniert, aber nicht für Bilder. Der öffentliche Pfad wird aus dem Parameter "set" abgerufen und zum Abrufen eines Chunks verwendet. Irgendwie hat es jedoch keine Auswirkungen auf Bilder. Wenn ich einen öffentlichen Pfad unter Ausgabe fest codiere, funktioniert es für Bilder. Das führt mich zu der Annahme, dass ein Problem mit der Kommunikation des Ladeprogramms mit der Variablen besteht. Daher besteht die Idee darin, die Optionen zum Laufen zu bringen und schließlich einen dynamischen publicPath zu übergeben.

+0

Zum einen sehe ich kein Beispiel oder Dokumentation, die vorschlägt, dass Sie eine URL in publicPath setzen können, es ist immer ein lokaler Dateisystempfad. Dies scheint nicht das Werkzeug zu sein, um Ihre Anforderungen zu lösen. – Gimby

+0

Danke für die Eingabe. Ich hatte auch Angst davor, also habe ich es auch mit einem lokalen Weg versucht. Leider werden nicht nur pfadbezogene Optionen gefunden. Es werden einfach keine Optionen weitergegeben. – TDeSmet

+0

Vielleicht eine dumme Frage, aber ... haben Sie tatsächlich das Datei-Loader-Modul installiert? – Gimby

Antwort

0

Ihre Frage ist vollständig gültig basierend auf der Dokumentation des Loaders auf beiden Lader GitHub repo und webpack docs. Das Problem ist die publicPath und Features sind in einem pull request implementiert, die zusammengeführt wird, aber noch nicht auf eine neue Version von Loader freigegeben, und die README on npm erwähnt die Funktionen aus dem gleichen Grund nicht.
Sie können diese Funktionen weiterhin verwenden, indem Sie mit dem GitHub Repo mit npm install webpack/file-loader --save-dev installieren und Ihre Optionen sollten funktionieren. Wenn nicht, versuchen Sie options durch query zu ersetzen.

{ 
    test: /\.(jpe?g|png|gif|svg|pdf)$/i, 
    loader: "file-loader", 
    query: { publicPath: 'https://apps.ixordocs.be/'} 
} 

Mit URLs für publicPath ist auch gültig, da es oft vorkommt, dass Sie Ihr Vermögen von einem CDN oder einem anderen Server geladen werden sollen.

Verwandte Themen