Closed easyhard007 closed 1 year ago
来自作者回复:
感谢贡献! 我这里测试了本地和远程环境,未复现异常,获取失败的原因可能是由于 token 过期,或者网络的抖动。 关于正则问题,数据源内的 js 链接本身是不带参数的。这里使用向前匹配(?=xxx),是为了得到以 app.js" 结尾的文本,因为数据源中包含了 sourcemap,需要过滤掉 js.map 资源。
数据源:
[ "https://s3plus.meituan.net/v1/mss_91f3b645703642ce914d9ce3610eaf4c/gundampage/gundam-20220525-1.4.9-prod-core.js","https://s3plus.meituan.net/v1/mss_91f3b645703642ce914d9ce3610eaf4c/gundampage/165724769877229d15168ebbb48a2d4bab57672813f48/app.js", "https://s3plus.meituan.net/v1/mss_91f3b645703642ce914d9ce3610eaf4c/gundam-sourcemap/165724769877229d15168ebbb48a2d4bab57672813f48/app.js.map" ] 使用 /https:\/\/[./_-\w]+app.js(?=")/g 匹配:
[ "https://s3plus.meituan.net/v1/mss_91f3b645703642ce914d9ce3610eaf4c/gundampage/gundam-20220525-1.4.9-prod-core.js","https://s3plus.meituan.net/v1/mss_91f3b645703642ce914d9ce3610eaf4c/gundampage/165724769877229d15168ebbb48a2d4bab57672813f48/app.js" ] 使用 /https:\/\/[./_-\w]+app.js/g 匹配:
[ "https://s3plus.meituan.net/v1/mss_91f3b645703642ce914d9ce3610eaf4c/gundampage/165724769877229d15168ebbb48a2d4bab57672813f48/app.js", "https://s3plus.meituan.net/v1/mss_91f3b645703642ce914d9ce3610eaf4c/gundam-sourcemap/165724769877229d15168ebbb48a2d4bab57672813f48/app.js" ]
美团更新了获取app.js的url,现在app.js的url后面不带参数了,导致正则表达式无法获取app.js的url,从而导致活动模板配置失败,代码失效。
将lib/coupons.js文件的第47行改为:
const matchAppJs = text.match(/https:\/\/[./_-\w]+app.js/g)
可解决问题。