2016-07-07 30 views
5

Ho un problema nel far funzionare i miei file mp3 usando il caricatore di file webpack.Servire file mp3 usando il caricatore di file webpack

Questo è il problema:

Ho un file mp3 sul mio disco rigido, che se apro utilizzando Chrome, ad esempio, "C: \ somefolder \ somemp3file.mp3" si apre in una scheda nel browser e gioca bene.

Tuttavia, quando servo lo stesso file con il webpack non funziona. Ho configurato il caricatore in webpack come questo:

{ 
    test: /\.(gif|jpg|png|mp3|aac|ogg)$/, 
    loader: 'file' 
} 

Poi, quando sto cercando di collegare al file ho bisogno è dentro la mia javascript, in questo modo:

require('file!./../content/somemp3file.mp3'); 

questo mi restituisce correttamente l'url per il file mp3.

Se provo a passare manualmente a localhost:8080 seguito dall'URL restituito da require, il lettore mp3 in Chrome viene visualizzato come previsto, ma il file non può essere riprodotto e non è possibile fare clic sul pulsante di riproduzione come se il file fosse corrotto o qualcosa del genere.

Qualcuno sa cosa sto facendo male qui?

+0

provare a rimuovere la 'file' quando si chiama 'require()'!. In questo modo viene generato un secondo file '.mp3', probabilmente ~ 80 byte. Se si guarda il file è solo un modulo di esportazione di una stringa (URL del file '.mp3' che è in bundle). Quindi lascia la config del webpack come hai fatto, e nel tuo file js, 'var src = require ('./../ content/somemp3file.mp3'); document.getElementById ('myAudio'). src = src; ' –

risposta

3

Utilizza file-loader in questo modo:

{ 
    test: /\.mp3$/, 
    include: SRC, 
    loader: 'file-loader' 
}