æ¬æä»¶å®ç°äºå¯¹ source map çæå
容è¿è¡æ´ç»ç²åº¦çæ§å¶ãå®ä¹å¯ä»¥æ ¹æ® devtool é
ç½®é项çæäºè®¾ç½®æ¥èªå¨å¯ç¨ã
new webpack.SourceMapDevToolPlugin(options);æ¯æä»¥ä¸é 置项ï¼
testï¼string RegExp [string, RegExp]ï¼ï¼å
å«åºäºæ©å±åçæ¨¡åç source mapï¼é»è®¤æ¯ .js, .mjs å .cssï¼ãincludeï¼string RegExp [string, RegExp]ï¼ï¼ä½¿è·¯å¾ä¸è¯¥å¼å¹é
çæ¨¡åçæ source mapãexcludeï¼string RegExp [string, RegExp]ï¼ï¼ä½¿å¹é
该å¼ç模åä¸çæ source mapãfilenameï¼stringï¼ï¼å®ä¹çæç SourceMap çåç§°ï¼ä¸è®¾ç½®å°é»è®¤ç½®ä¸º inlinedï¼ãappendï¼stringï¼ï¼å¨åå§èµæºå追å ç»å®å¼ãéå¸¸æ¯ #sourceMappingURL 注éã[url] è¢«æ¿æ¢æ source map æä»¶ç URLãwebpack v4.36.0 ä¹åæ¯æ path åæ°ï¼[chunk]ã[filename] å [contenthash]ã设置 append 为 false ä¼ç¦æ¢è¿½å ãmoduleFilenameTemplateï¼stringï¼ï¼æ¥ç output.devtoolModuleFilenameTemplateãfallbackModuleFilenameTemplateï¼stringï¼ï¼æ¥çä¸é¢ç龿¥ãnamespaceï¼stringï¼ï¼æ¥ç output.devtoolNamespaceãmodule = trueï¼booleanï¼ï¼è¡¨ç¤º loader æ¯å¦çæ source mapãcolumns = trueï¼booleanï¼ï¼è¡¨ç¤ºæ¯å¦åºè¯¥ä½¿ç¨ column mappingãnoSources = falseï¼booleanï¼ï¼é²æ¢æºæä»¶çå
容被å
å«å¨ source map ä¸ãpublicPath (string)ï¼çæå¸¦ public path åç¼çç»å¯¹ URLï¼ä¾å¦ï¼https://example.com/project/ãfileContext (string)ï¼ä½¿å¾ [file] åæ°ä½ä¸ºæ¬ç®å½çç¸å¯¹è·¯å¾ãsourceRootï¼stringï¼ï¼ç» SourceMap ä¸ç sourceRoot 屿§æä¾ä¸ä¸ªèªå®ä¹å¼ãfileContext é
ç½®å¨ä½ æ³è¦å° source map åå¨å°ä¸å±ç®å½ï¼ä»¥é¿å
../../ åºç°å¨ç»å¯¹è·¯å¾ [url] é颿¶æ¯æç¨çã
ä¸é¢ç示ä¾å±ç¤ºäºæ¬æä»¶çä¸äºå¸¸è§ç¨ä¾ã
ä½ å¯ä»¥ä½¿ç¨ä»¥ä¸ä»£ç å°é
置项 devtool: inline-source-map æ¿æ¢ä¸ºçæçèªå®ä¹æä»¶é
ç½®ï¼
module.exports = {
// ...
devtool: false,
plugins: [new webpack.SourceMapDevToolPlugin({})],
};以ä¸ä»£ç ä¼æé¤ vendor.js bundle å
模åç source mapã
new webpack.SourceMapDevToolPlugin({
filename: '[name].js.map',
exclude: ['vendor.js'],
});设置 source map ç URLãå¨å®¿ä¸»ç¯å¢éè¦ææçæ åµä¸å¾æç¨ã
new webpack.SourceMapDevToolPlugin({
append: '\n//# sourceMappingURL=https://example.com/sourcemap/[url]',
filename: '[name].map',
});è¿æä¸ç§åºæ¯ï¼source map åå¨å¨ä¸å±ç®å½ä¸æ¶ï¼
project
|- dist
|- public
|- bundle-[hash].js
|- sourcemaps
|- bundle-[hash].js.map
å¦ä¸è®¾ç½®ï¼
new webpack.SourceMapDevToolPlugin({
filename: 'sourcemaps/[file].map',
publicPath: 'https://example.com/project/',
fileContext: 'public',
});å°ä¼çæä»¥ä¸ URLï¼
https://example.com/project/sourcemaps/bundle-[hash].js.map