2017-01-27 4 views
-2

Ich war ein reaktionsprojekt in github erkunden.wichtige statische Datei zu Webpack

Ich verstehe diese nicht in app.js

import 'file?name=[name].[ext]!../manifest.json'; 
import 'file?name=[name].[ext]!../.htaccess'; 
import 'file?name=[name].[ext]!../favicon.ico'; 
import 'file?name=[name].[ext]!../favicon.png'; 

von der Linie 11 ab https://github.com/mxstbr/login-flow/blob/master/js/app.js

+0

Haben Sie etwas unternommen, um es zu verstehen? Z.B. Hast du eine Dokumentation gesucht und gelesen? Wenn ja, was ist noch unklar? Wenn nicht, warum nicht? –

+0

@FelixKling Ich weiß nicht, ob es es6 oder ein Teil von Webpack ist. Ich weiß nur, dass Sie 'React von 'react' importieren können. –

+5

Es ist definitiv Webpack. ES6 definiert nicht wirklich die Struktur einer Modulkennung. I.e. Was innerhalb des Strings liegt, ist vollständig dem * Modullader * (in diesem Fall Webpack) überlassen. Was Sie sehen, ist der Datei-Loader von webpack: https://github.com/webpack-contrib/file-loader –

Antwort

0

Es ist file-loader webpack der Verwendung.

file-loader lädt normalerweise eine Datei wie sie ist. Es wird dann in den Webpack-Ausgang als <md5hash>.<extension> eingegeben. Wenn Sie name=[name].[ext] als Abfragezeichenfolgenparameter file-loader angeben, entspricht der Ausgabedateiname dem ursprünglichen Dateinamen.

Alles in allem ist es eine Möglichkeit, sicherzustellen, dass eine Datei in die Webpack-Ausgabe kopiert, aber nicht in irgendeiner Weise geändert wird, einschließlich des Dateinamens.