-
-
Notifications
You must be signed in to change notification settings - Fork 62
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: resolve modules if folder contains a package.json file #187
fix: resolve modules if folder contains a package.json file #187
Conversation
getMappedPath only resolves to files that exist. This does not work when a TSConfig path alias resolves to a module folder containing built assets, and described by a package.json, e.g. foo/dist. If the tsconfig path is mapped to a folder, then getMappedPath returns undefined as the folder is not a file. However, in somes cases it is ok for this to resolve as the package.json contains a `typings` entry that references a .d.ts file, which is correctly handled by enhanced-resolve
🦋 Changeset detectedLatest commit: 27b4ce8 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. |
Use `path.sep` as the file separator instead of `/` so that this works on both Windows and Unix. Rename input parameter from `path` to `modulePath` so that it doesn't override `node:path`
7b1bc95
to
fba2865
Compare
Co-authored-by: JounQin <[email protected]>
ebc2cb8
to
ea39e0b
Compare
@scott-ut Thanks for your contribution! |
| datasource | package | from | to | | ---------- | --------------------------------- | ----- | ----- | | npm | eslint-import-resolver-typescript | 3.5.1 | 3.6.1 | ##### [\`v3.6.1\`](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#361) ##### Patch Changes - [#241](import-js/eslint-import-resolver-typescript#241) [`cf5d67f`](import-js/eslint-import-resolver-typescript@cf5d67f) Thanks [@klippx](https://github.com/klippx)! - Fix CJS import to make it compatible with ESM projects ##### [\`v3.6.0\`](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#360) ##### Minor Changes - [#235](import-js/eslint-import-resolver-typescript#235) [`b5ea367`](import-js/eslint-import-resolver-typescript@b5ea367) Thanks [@SukkaW](https://github.com/SukkaW)! - refactor: drop `globby` and `synckit` ##### [\`v3.5.5\`](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#355) ##### Patch Changes - [`84b0649`](import-js/eslint-import-resolver-typescript@84b0649) Thanks [@JounQin](https://github.com/JounQin)! - fix: mark eslint-module-utils as dep ##### [\`v3.5.4\`](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#354) ##### Patch Changes - [`25f3920`](import-js/eslint-import-resolver-typescript@25f3920) Thanks [@JounQin](https://github.com/JounQin)! - fix: enhanced-resolve is commonjs only - close [#213](import-js/eslint-import-resolver-typescript#213) - [#219](import-js/eslint-import-resolver-typescript#219) [`0bf6ffb`](import-js/eslint-import-resolver-typescript@0bf6ffb) Thanks [@lsmurray](https://github.com/lsmurray)! - fix: check if cwd changed to bust mapper cache ##### [\`v3.5.3\`](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#353) ##### Patch Changes - [#206](import-js/eslint-import-resolver-typescript#206) [`6531bad`](import-js/eslint-import-resolver-typescript@6531bad) Thanks [@marvinhagemeister](https://github.com/marvinhagemeister)! - Only try to resolve a module directory when we know that the path is a directory. This can lead to a 15% speedup on projects with many files. ##### [\`v3.5.2\`](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#352) ##### Patch Changes - [#193](import-js/eslint-import-resolver-typescript#193) [`8756a26`](import-js/eslint-import-resolver-typescript@8756a26) Thanks [@Rialgar](https://github.com/Rialgar)! - chore(package): remove node 12 from engines field - [#187](import-js/eslint-import-resolver-typescript#187) [`7a91daf`](import-js/eslint-import-resolver-typescript@7a91daf) Thanks [@scott-ut](https://github.com/scott-ut)! - fix: resolve modules if folder contains a package.json file
| datasource | package | from | to | | ---------- | --------------------------------- | ----- | ----- | | npm | eslint-import-resolver-typescript | 3.5.1 | 3.6.1 | ##### [\`v3.6.1\`](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#361) ##### Patch Changes - [#241](import-js/eslint-import-resolver-typescript#241) [`cf5d67f`](import-js/eslint-import-resolver-typescript@cf5d67f) Thanks [@klippx](https://github.com/klippx)! - Fix CJS import to make it compatible with ESM projects ##### [\`v3.6.0\`](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#360) ##### Minor Changes - [#235](import-js/eslint-import-resolver-typescript#235) [`b5ea367`](import-js/eslint-import-resolver-typescript@b5ea367) Thanks [@SukkaW](https://github.com/SukkaW)! - refactor: drop `globby` and `synckit` ##### [\`v3.5.5\`](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#355) ##### Patch Changes - [`84b0649`](import-js/eslint-import-resolver-typescript@84b0649) Thanks [@JounQin](https://github.com/JounQin)! - fix: mark eslint-module-utils as dep ##### [\`v3.5.4\`](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#354) ##### Patch Changes - [`25f3920`](import-js/eslint-import-resolver-typescript@25f3920) Thanks [@JounQin](https://github.com/JounQin)! - fix: enhanced-resolve is commonjs only - close [#213](import-js/eslint-import-resolver-typescript#213) - [#219](import-js/eslint-import-resolver-typescript#219) [`0bf6ffb`](import-js/eslint-import-resolver-typescript@0bf6ffb) Thanks [@lsmurray](https://github.com/lsmurray)! - fix: check if cwd changed to bust mapper cache ##### [\`v3.5.3\`](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#353) ##### Patch Changes - [#206](import-js/eslint-import-resolver-typescript#206) [`6531bad`](import-js/eslint-import-resolver-typescript@6531bad) Thanks [@marvinhagemeister](https://github.com/marvinhagemeister)! - Only try to resolve a module directory when we know that the path is a directory. This can lead to a 15% speedup on projects with many files. ##### [\`v3.5.2\`](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#352) ##### Patch Changes - [#193](import-js/eslint-import-resolver-typescript#193) [`8756a26`](import-js/eslint-import-resolver-typescript@8756a26) Thanks [@Rialgar](https://github.com/Rialgar)! - chore(package): remove node 12 from engines field - [#187](import-js/eslint-import-resolver-typescript#187) [`7a91daf`](import-js/eslint-import-resolver-typescript@7a91daf) Thanks [@scott-ut](https://github.com/scott-ut)! - fix: resolve modules if folder contains a package.json file
| datasource | package | from | to | | ---------- | --------------------------------- | ----- | ----- | | npm | eslint-import-resolver-typescript | 3.5.1 | 3.6.1 | ## [v3.6.1](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#361) ##### Patch Changes - [#241](import-js/eslint-import-resolver-typescript#241) [`cf5d67f`](import-js/eslint-import-resolver-typescript@cf5d67f) Thanks [@klippx](https://github.com/klippx)! - Fix CJS import to make it compatible with ESM projects ## [v3.6.0](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#360) ##### Minor Changes - [#235](import-js/eslint-import-resolver-typescript#235) [`b5ea367`](import-js/eslint-import-resolver-typescript@b5ea367) Thanks [@SukkaW](https://github.com/SukkaW)! - refactor: drop `globby` and `synckit` ## [v3.5.5](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#355) ##### Patch Changes - [`84b0649`](import-js/eslint-import-resolver-typescript@84b0649) Thanks [@JounQin](https://github.com/JounQin)! - fix: mark eslint-module-utils as dep ## [v3.5.4](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#354) ##### Patch Changes - [`25f3920`](import-js/eslint-import-resolver-typescript@25f3920) Thanks [@JounQin](https://github.com/JounQin)! - fix: enhanced-resolve is commonjs only - close [#213](import-js/eslint-import-resolver-typescript#213) - [#219](import-js/eslint-import-resolver-typescript#219) [`0bf6ffb`](import-js/eslint-import-resolver-typescript@0bf6ffb) Thanks [@lsmurray](https://github.com/lsmurray)! - fix: check if cwd changed to bust mapper cache ## [v3.5.3](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#353) ##### Patch Changes - [#206](import-js/eslint-import-resolver-typescript#206) [`6531bad`](import-js/eslint-import-resolver-typescript@6531bad) Thanks [@marvinhagemeister](https://github.com/marvinhagemeister)! - Only try to resolve a module directory when we know that the path is a directory. This can lead to a 15% speedup on projects with many files. ## [v3.5.2](https://github.com/import-js/eslint-import-resolver-typescript/blob/HEAD/CHANGELOG.md#352) ##### Patch Changes - [#193](import-js/eslint-import-resolver-typescript#193) [`8756a26`](import-js/eslint-import-resolver-typescript@8756a26) Thanks [@Rialgar](https://github.com/Rialgar)! - chore(package): remove node 12 from engines field - [#187](import-js/eslint-import-resolver-typescript#187) [`7a91daf`](import-js/eslint-import-resolver-typescript@7a91daf) Thanks [@scott-ut](https://github.com/scott-ut)! - fix: resolve modules if folder contains a package.json file
getMappedPath resolves files by trying a number of different file extensions and filtering out those that aren't a file. This does not work when a TSConfig path alias resolves to a directory containing built assets, and described by a package.json, e.g.
@foo/bar
->node_modules/foo/bar/dist
.If the tsconfig path is mapped to a folder that doesn't contain an
index.${ext}
file, then getMappedPath returns undefined as the folder itself is not a file. However, in some cases it is ok for this to resolve to the directory as the package.json contains atypings
entry that references a .d.ts file, which is correctly handled by enhanced-resolve.#188