2016-08-16 25 views
5

我生產的WebPack配置爲:如何使用的WebPack改變`sourceMappingURL`

{ 
    output: { 
    publicPath: "https://cdn.example.com/sub-directory/", 
    filename: '[name]-[chunkhash].min.js' 
    }, 

    devtool: 'source-map', 

    plugins: [ 
    new webpack.optimize.UglifyJsPlugin() 
    ] 
} 

現在我有兩個文件app-12345.min.jsapp-12345.min.js.map

我還爲主腳本自動生成了CDN URL https://cdn.example.com/sub-directory/app-12345.min.js

但是sourceMappingURL仍然是相對路徑//# sourceMappingURL=app-12345.min.js.map而不能直接在瀏覽器中訪問。

我的問題是如何設置sourceMappingURL作爲絕對自動生成的路徑?

+0

你發現了一個解決方案,即時通訊面臨同樣的問題 – jamescharlesworth

回答

2

最後這是可能在使用從@omj的響應指南和以下的WebPack 3配置

devtool: 'hidden-source-map', // SourceMap without reference in original file 

    new webpack.SourceMapDevToolPlugin({ 
    filename: '[file].map', 
    append: `\n//# sourceMappingURL=${path}[url]` 
    }) 

更新(的WebPack v3.10.0):

自Webpack v3.10.0以來增加了一個新選項。該選項稱爲publicPath

new webpack.SourceMapDevToolPlugin({ 
    filename: '[file].map', 
    publicPath: 'https://example.com/dev/' 
}); 
6

SourceMapDevToolPlugin插件是一個選項。

new webpack.SourceMapDevToolPlugin({ 
    filename: '[file].map', 
    append: '\n//# sourceMappingURL=' + path + '[url]' 
}); 
+0

在這種情況下,結果文件將包含兩個'sourceMappingURL'字符串。 '//#sourceMappingURL = https:// example.com/app.js.map' and'//#sourceMappingURL = app.js.map' – Ky6uk

+0

to fix this use'config.devtool ='hidden-source- map''然後是'append:...' – daviestar

0

用的WebPack 2,您可以使用隱藏源地圖devtool和https://github.com/lcxfs1991/banner-webpack-plugin 橫幅的WebPack-插件 和設置是這樣的:

new banner({ 
    chunks: { 
     "main": { 
      afterContent: "\n//# sourceMappingURL=custom/url/to/map\n" 
     } 
    } 
})