From 64224c3622f8ae58d64809329a2eea728f6568fa Mon Sep 17 00:00:00 2001 From: Dylan Piercey Date: Tue, 18 Aug 2020 16:20:47 -0700 Subject: [PATCH] fix: issue with regexp chars in multi file component files --- package-lock.json | 71 ++++++++++++++++++++++++++++++++++++++++++--- package.json | 1 + src/loader/index.ts | 3 +- 3 files changed, 70 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 478d0db..85e33ca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2303,6 +2303,14 @@ "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + } } }, "char-props": { @@ -4323,10 +4331,9 @@ } }, "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" }, "escodegen": { "version": "1.14.1", @@ -4793,6 +4800,14 @@ "dev": true, "requires": { "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + } } }, "file-entry-cache": { @@ -8011,6 +8026,14 @@ "has-ansi": "^2.0.0", "strip-ansi": "^3.0.0", "supports-color": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + } } }, "figures": { @@ -8021,6 +8044,14 @@ "requires": { "escape-string-regexp": "^1.0.5", "object-assign": "^4.1.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + } } }, "log-symbols": { @@ -8077,6 +8108,14 @@ "dev": true, "requires": { "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + } } }, "mimic-fn": { @@ -10736,6 +10775,14 @@ "dev": true, "requires": { "escape-string-regexp": "^1.0.5" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + } } }, "find-up": { @@ -11036,6 +11083,14 @@ "dev": true, "requires": { "escape-string-regexp": "^1.0.2" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + } } }, "style-loader": { @@ -11363,6 +11418,14 @@ "dev": true, "requires": { "escape-string-regexp": "^1.0.2" + }, + "dependencies": { + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + } } }, "ts-jest": { diff --git a/package.json b/package.json index 507f7d6..605250c 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "dependencies": { "base-x": "^3.0.7", "concat-with-sourcemaps": "^1.1.0", + "escape-string-regexp": "^4.0.0", "lasso-modules-client": "^2.0.5", "loader-utils": "^1.4.0", "sort-keys": "^4.0.0", diff --git a/src/loader/index.ts b/src/loader/index.ts index 99e3755..0f6b0c9 100644 --- a/src/loader/index.ts +++ b/src/loader/index.ts @@ -4,6 +4,7 @@ import * as path from "path"; import { Compiler } from "webpack"; import * as loaderUtils from "loader-utils"; import ConcatMap from "concat-with-sourcemaps"; +import escapeRegExp from "escape-string-regexp"; import getAssetCode from "./get-asset-code"; import { getVirtualModules } from "../shared/virtual"; import pluginOptionsForCompiler from "../shared/plugin-options-for-compiler"; @@ -292,7 +293,7 @@ function getMissingDepRequire(resource: string, meta): string | false { if (missingDeps.length) { const templateFileName = getBasenameWithoutExt(resource); return `require.context(".", false, /\\${path.sep}${ - templateFileName === "index" ? "" : `${templateFileName}\\.` + templateFileName === "index" ? "" : `${escapeRegExp(templateFileName)}\\.` }(?:${missingDeps.join("|")})\\.[^\\${path.sep}]+$/)`; }