使用uglifyjs命令添加content参数生成sourcemap报错求助
解决uglifyjs添加content参数后出现"invalid input source map"错误的问题
问题场景
- 在MSBuild中使用uglifyjs压缩JS文件并生成sourcemap时出错,转而直接在命令行测试
- 不带
content参数的命令可正常生成压缩文件及sourcemap - 添加
content参数后抛出invalid input source map错误
正常命令
node_modules\.bin\uglifyjs.cmd wwwroot\lib\jquery.validate.unobtrusive.js --source-map "url='jquery.validate.unobtrusive.min.js.map',includeSources" -o wwwroot\lib\jquery.validate.unobtrusive.min.js -c -m
报错命令
node_modules\.bin\uglifyjs.cmd wwwroot\lib\jquery.validate.unobtrusive.js --source-map "url='jquery.validate.unobtrusive.min.js.map',content='wwwroot/lib/jquery.validate.unobtrusive.js.map',includeSources" -o wwwroot\lib\jquery.validate.unobtrusive.min.js -c -m
错误信息
ERROR: invalid input source map: wwwroot/lib/jquery.validate.unobtrusive.js.map at parse_source_map (eval at <anonymous> (C:\Users\xxx\source\temp\node_modules\uglify-js\tools\node.js:18:1), <anonymous>:22118:15) at Object.minify (eval at <anonymous> (C:\Users\xxx\source\temp\node_modules\uglify-js\tools\node.js:18:1), <anonymous>:22234:38) at run (C:\Users\xxx\source\temp\node_modules\uglify-js\bin\uglifyjs:379:27) at Object.<anonymous> (C:\Users\xxx\source\temp\node_modules\uglify-js\bin\uglifyjs:287:5) at Module._compile (node:internal/modules/cjs/loader:1101:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) at node:internal/main/run_main_module:17:47
解决方法
原因分析
content参数的作用是合并已有的sourcemap文件,你遇到的错误是因为指定的wwwroot/lib/jquery.validate.unobtrusive.js.map要么不存在、路径错误,要么不是合法的sourcemap格式。
具体步骤
判断是否需要
content参数
如果原JS文件(jquery.validate.unobtrusive.js)本身没有附带对应的sourcemap,完全不需要添加content参数,直接使用你之前的正常命令就能生成正确的sourcemap。若需合并已有sourcemap
- 检查文件路径:确认
wwwroot/lib/jquery.validate.unobtrusive.js.map文件确实存在,且命令行的工作目录与该相对路径匹配(比如你是否在项目根目录执行命令) - 验证sourcemap合法性:用文本编辑器打开该文件,确认是符合JSON规范的sourcemap结构,必须包含
version、sources、names、mappings等核心字段 - 替换无效文件:如果文件损坏或格式错误,重新获取原JS文件对应的正确sourcemap
- 检查文件路径:确认
内容的提问来源于stack exchange,提问作者jmoreno
相关产品推荐
相关产品推荐

