webpack-monkey icon indicating copy to clipboard operation
webpack-monkey copied to clipboard

"match" in meta file didn't support port

Open Mr-Python-in-China opened this issue 1 year ago • 4 comments

I tried:

{
  "name":"test",
  "match": ["*://localhost:54220/"]
}

And got an error in console:

Error matching script "main": TypeError: Invalid pattern: *://localhost:54220/
    at urlMatch (utils.js:23:15)
    at eval (client.js:27:60)
    at Array.some (<anonymous>)
    at matchUserscript (client.js:27:21)
    at Array.filter (<anonymous>)
    at Proxy.eval (client.js:22:13)
    at ./node_modules/.store/webpack-monkey-virtual-b8d7e0e2c3/package/lib/client/client.js (eval at onload (localhost/:78:13), <anonymous>:455:1)
    at __webpack_require__ (eval at onload (localhost/:78:13), <anonymous>:36:32)
    at __webpack_exec__ (eval at onload (localhost/:78:13), <anonymous>:633:48)
    at eval (eval at onload (localhost/:78:13), <anonymous>:634:471)

In utils.js

function urlMatch(pattern, url) {
    const matcher = (0, browser_extension_url_match_1.matchPattern)(pattern);
    if (!matcher.valid) {
        throw new TypeError("Invalid pattern: " + pattern);
    }
    return matcher.match(url);
}

matcher.error is Error: Host "localhost:54220" cannot include a port number. All ports are matched by default..

Then I tried "match": ["*://localhost/"] and visited localhost:54220, but matcher.match(url) return false, so my script didn't work.

Mr-Python-in-China avatar Jun 03 '24 05:06 Mr-Python-in-China