2015-04-28 42 views
7

你能加載一個不同的加載器集的輔助條目嗎?不同的js條目的Webpack不同的加載器

例如,我試圖創建一個服務工作者進行脫機緩存。我已經排除了包含服務工作者的文件夾,並將其包含在另一個文件夾中。沒有調用service-worker.js(它只是手動加載到靜態index.html中)。服務工作者入口點是拾取React和熱載入程序,而不是僅僅通過Babel。這是我的配置的顯着部分。

entry: { 
    app: "app.js", 
    'service-worker': 'persistence/service-worker.js' 
}, 
module: { 
    loaders:[{ 
     test: /\.js|\.jsx/, 
     loaders: ["react-hot", "jsx?harmony", "babel"], 
     exclude: /persistence/ 
    }, { 
     test: /service\-worker\.js/, 
     loaders: ["babel"], 
     include: /persistence/ 
    }] 
+0

我不明白爲什麼這樣的東西不能工作。你在安裝時遇到了一些特殊的問題嗎? –

+0

service-worker條目使用所有javsscript包構建,並且不包括持久性文件夾中的1個文件。 – puppybits

+0

也許最安全的選擇是爲服務人員定義一個單獨的配置。這對我來說似乎是最乾淨的解決方案。 –

回答

0

我決定使用文件加載器(用babel-loader預處理js文件)。它適用於熱載入器以及我的生產Docker/Node環境。

loaders: { 
    { 
    test: /\.(js|jsx)$/, 
    include: [/src/,/bower_components/], 
    exclude: [/persistence/], 
    loader: 'jsx?harmony!babel' 
    }, { 
    test: /\.js$/, 
    include: [/persistence/], 
    loader: 'file?name=[name].[ext]!babel' 
    }, 
    ... 
}, 

該配置從正常的JS文件中排除該文件夾,並通過Service Worker文件單獨複製到網站的根目錄中。