diff --git a/package.json b/package.json index 40a9f6e28f13..71a7bd0a67bb 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ "regexp-util": "1.2.2", "remark-math": "1.0.6", "remark-parse": "5.0.0", + "resolve": "1.16.0", "semver": "7.3.2", "srcset": "2.0.1", "string-width": "4.2.0", diff --git a/src/common/load-plugins.js b/src/common/load-plugins.js index 7cc20403c440..caf6d44a2ba4 100644 --- a/src/common/load-plugins.js +++ b/src/common/load-plugins.js @@ -5,10 +5,10 @@ const partition = require("lodash/partition"); const fs = require("fs"); const globby = require("globby"); const path = require("path"); +const resolve = require("resolve"); const thirdParty = require("./third-party"); const internalPlugins = require("./internal-plugins"); const mem = require("mem"); -const resolve = require("./resolve"); const memoizedLoad = mem(load, { cacheKey: JSON.stringify }); const memoizedSearch = mem(findPluginsInNodeModules); @@ -43,10 +43,10 @@ function load(plugins, pluginSearchDirs) { let requirePath; try { // try local files - requirePath = resolve(path.resolve(process.cwd(), pluginName)); + requirePath = resolve.sync(path.resolve(process.cwd(), pluginName)); } catch (_) { // try node modules - requirePath = resolve(pluginName, { paths: [process.cwd()] }); + requirePath = resolve.sync(pluginName, { basedir: process.cwd() }); } return { @@ -82,7 +82,9 @@ function load(plugins, pluginSearchDirs) { return memoizedSearch(nodeModulesDir).map((pluginName) => ({ name: pluginName, - requirePath: resolve(pluginName, { paths: [resolvedPluginSearchDir] }), + requirePath: resolve.sync(pluginName, { + basedir: resolvedPluginSearchDir, + }), })); }) .reduce((a, b) => a.concat(b), []); diff --git a/src/common/resolve.js b/src/common/resolve.js deleted file mode 100644 index 183b59429766..000000000000 --- a/src/common/resolve.js +++ /dev/null @@ -1,12 +0,0 @@ -"use strict"; - -let { resolve } = eval("require"); - -// In the VS Code extension `require` is overridden and `require.resolve` doesn't support the 2nd argument. -if (resolve.length === 1) { - const Module = eval("require")("module"); - const createRequire = Module.createRequire || Module.createRequireFromPath; - resolve = createRequire(__dirname).resolve; -} - -module.exports = resolve; diff --git a/src/config/resolve-config.js b/src/config/resolve-config.js index c32067876d34..f56c43de0800 100644 --- a/src/config/resolve-config.js +++ b/src/config/resolve-config.js @@ -2,12 +2,12 @@ const thirdParty = require("../common/third-party"); const minimatch = require("minimatch"); +const resolve = require("resolve"); const path = require("path"); const mem = require("mem"); const resolveEditorConfig = require("./resolve-config-editorconfig"); const loadToml = require("../utils/load-toml"); -const resolve = require("../common/resolve"); const getExplorerMemoized = mem( (opts) => { @@ -17,8 +17,9 @@ const getExplorerMemoized = mem( transform: (result) => { if (result && result.config) { if (typeof result.config === "string") { - const dir = path.dirname(result.filepath); - const modulePath = resolve(result.config, { paths: [dir] }); + const modulePath = resolve.sync(result.config, { + basedir: path.dirname(result.filepath), + }); result.config = eval("require")(modulePath); } diff --git a/yarn.lock b/yarn.lock index 333476bc5cba..70cfa4668c06 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6463,6 +6463,13 @@ resolve@1.1.7: resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= +resolve@1.16.0: + version "1.16.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.16.0.tgz#063dc704fa3413e13ac1d0d1756a7cbfe95dd1a7" + integrity sha512-LarL/PIKJvc09k1jaeT4kQb/8/7P+qV4qSnN2K80AES+OHdfZELAKVOBjxsvtToT/uLOfFbvYvKfZmV8cee7nA== + dependencies: + path-parse "^1.0.6" + resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.15.1, resolve@^1.3.2: version "1.15.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz#27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8"