diff --git a/src/utils.js b/src/utils.js index ab3ddf7f..e9ebdad0 100644 --- a/src/utils.js +++ b/src/utils.js @@ -44,7 +44,10 @@ function createAssetsFilter(excludePatterns) { * @param {string} asset asset * @returns {boolean} true when need to exclude, otherwise false */ - (asset) => pattern.test(asset) + (asset) => { + pattern.lastIndex = 0; + return pattern.test(asset); + } ); } diff --git a/test/utils.js b/test/utils.js index 46d56d63..9ae5ed8e 100644 --- a/test/utils.js +++ b/test/utils.js @@ -24,6 +24,13 @@ describe("createAssetsFilter", () => { expect(filter("bar")).toBe(true); expect(filter("bar-foo")).toBe(true); }); +it("should consistently filter assets with global RegExp patterns", () => { + const filter = createAssetsFilter(/\.js/g); + + expect(filter("main.js")).toBe(false); + expect(filter("main.js")).toBe(false); + expect(filter("main.js")).toBe(false); +}); it("should allow a filter function as a pattern", () => { const filter = createAssetsFilter((asset) => asset.startsWith("foo"));