diff --git a/lib/follow.ts b/lib/follow.ts index 03fba250..d4240a16 100644 --- a/lib/follow.ts +++ b/lib/follow.ts @@ -1,6 +1,8 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ import { sync, SyncOpts } from 'resolve'; import fs from 'fs'; import path from 'path'; +import { exports as resolveExports } from 'resolve.exports'; import { toNormalizedRealPath } from './common'; import type { PackageJson } from './types'; @@ -97,6 +99,16 @@ export function follow(x: string, opts: FollowOptions) { return fs.readFileSync(file); }, packageFilter: (config, base, dir) => { + if (config.exports) { + delete config.exports; + delete config.type; + delete config.browser; + config.main = + resolveExports(config, '.', { + conditions: ['node', 'require'], + }) || config.main; + } + if (opts.catchPackageFilter) { opts.catchPackageFilter(config, base, dir); } diff --git a/package.json b/package.json index 37f91312..a2594430 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "multistream": "^4.1.0", "prebuild-install": "7.1.1", "resolve": "^1.22.0", + "resolve.exports": "2.0.2", "stream-meter": "^1.0.4" }, "devDependencies": { diff --git a/test/test-100-axios/main.js b/test/test-100-axios/main.js new file mode 100644 index 00000000..c0a3a4c3 --- /dev/null +++ b/test/test-100-axios/main.js @@ -0,0 +1,11 @@ +const axios = require('axios'); + +// test call to axios fetch google.com +axios + .get('http://www.google.com') + .then(function (response) { + console.log('OK'); + }) + .catch(function (error) { + console.log('ERROR'); + }); diff --git a/test/test-100-axios/package.json b/test/test-100-axios/package.json new file mode 100644 index 00000000..68b853ba --- /dev/null +++ b/test/test-100-axios/package.json @@ -0,0 +1,21 @@ +{ + "name": "test-100-axios", + "version": "1.0.0", + "description": "", + "main": "main.js", + "bin": "main.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "axios": "^1.6.7" + }, + "pkg": { + "assets": [ + "./node_modules/axios/dist/node/**" + ] + } +} diff --git a/yarn.lock b/yarn.lock index c76bae00..98fb5339 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3891,6 +3891,11 @@ resolve-from@^4.0.0: resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== +resolve.exports@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" + integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== + resolve@^1.1.6, resolve@^1.22.0, resolve@^1.22.4: version "1.22.6" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.6.tgz"