Typescript module was successfully resolved but cannot be found
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}
As part of a Typescript 3 monorepo I was trying to reference a package (project_2) from another one (project_1) in the same repo. The repo looks like:
|- project_1
| |- package.json (@projects/project_1)
| |- tsconfig.json
| |- src
| |- foo.ts
|- project_2
|- package.json (@projects/project_2)
|- tsconfig.json
|- src
|- bar.ts
foo.ts references bar.ts with the following line:
import { bar } from "@projects/project_2/src/bar";
When I run
cd project_1 && yarn exec tsc -- --traceResolution
Starting in Typescript 2.9 I get the following message:
======== Resolving module '@projects/project_2/src/bar' from '/home/jesuspc/Code/test2/project_1/src/foo.ts'.
======== Module resolution kind is not specified, using 'NodeJs'. 'baseUrl' option is set to
'/home/jesuspc/Code/test2/', using this value to
resolve non-relative module name '@projects/project_2/src/bar'.
'paths' option is specified, looking for a pattern to match module
name '@projects/project_2/src/bar'. Module name
'@projects/project_2/src/bar', matched pattern '@projects/'. Trying
substitution './', candidate module location: './project_2/src/bar'.
Loading module as file / folder, candidate module location
'/home/jesuspc/Code/test2/project_2/src/bar',
target file type 'TypeScript'. File
'/home/jesuspc/Code/test2/project_2/src/bar.ts'
exist - use it as a name resolution result.
======== Module name '@projects/project_2/src/bar' was successfully resolved to
'/home/jesuspc/Code/test2/project_2/src/bar.ts'.
======== src/foo.ts:1:24 - error TS2307: Cannot find module '@projects/project_2/src/bar'.
1 import { bar, x } from "@projects/project_2/src/bar";
So apparently the module was resolved properly:
"Module name '@projects/project_2/src/bar' was successfully resolved to '/home/jesuspc/Code/test2/project_2/src/bar.ts'"
but then it failed with:
@projects/project_2/src/bar not found
which does not make sense to me.
I have noticed that the module gets resolved properly in Typescript 2.8 and the compilation succeeds. I haven't been able to find any relevant change between 2.8 and 2.9 in the patch notes.
Why is it reporting that the module location is properly resolved first to then complain that it can not been found?
I have pushed the code to reproduce the issue to this repo.
typescript
add a comment |
As part of a Typescript 3 monorepo I was trying to reference a package (project_2) from another one (project_1) in the same repo. The repo looks like:
|- project_1
| |- package.json (@projects/project_1)
| |- tsconfig.json
| |- src
| |- foo.ts
|- project_2
|- package.json (@projects/project_2)
|- tsconfig.json
|- src
|- bar.ts
foo.ts references bar.ts with the following line:
import { bar } from "@projects/project_2/src/bar";
When I run
cd project_1 && yarn exec tsc -- --traceResolution
Starting in Typescript 2.9 I get the following message:
======== Resolving module '@projects/project_2/src/bar' from '/home/jesuspc/Code/test2/project_1/src/foo.ts'.
======== Module resolution kind is not specified, using 'NodeJs'. 'baseUrl' option is set to
'/home/jesuspc/Code/test2/', using this value to
resolve non-relative module name '@projects/project_2/src/bar'.
'paths' option is specified, looking for a pattern to match module
name '@projects/project_2/src/bar'. Module name
'@projects/project_2/src/bar', matched pattern '@projects/'. Trying
substitution './', candidate module location: './project_2/src/bar'.
Loading module as file / folder, candidate module location
'/home/jesuspc/Code/test2/project_2/src/bar',
target file type 'TypeScript'. File
'/home/jesuspc/Code/test2/project_2/src/bar.ts'
exist - use it as a name resolution result.
======== Module name '@projects/project_2/src/bar' was successfully resolved to
'/home/jesuspc/Code/test2/project_2/src/bar.ts'.
======== src/foo.ts:1:24 - error TS2307: Cannot find module '@projects/project_2/src/bar'.
1 import { bar, x } from "@projects/project_2/src/bar";
So apparently the module was resolved properly:
"Module name '@projects/project_2/src/bar' was successfully resolved to '/home/jesuspc/Code/test2/project_2/src/bar.ts'"
but then it failed with:
@projects/project_2/src/bar not found
which does not make sense to me.
I have noticed that the module gets resolved properly in Typescript 2.8 and the compilation succeeds. I haven't been able to find any relevant change between 2.8 and 2.9 in the patch notes.
Why is it reporting that the module location is properly resolved first to then complain that it can not been found?
I have pushed the code to reproduce the issue to this repo.
typescript
Consider using lerna (that can use yarn beneath) for automatic setup of linkd between your packages.
– wookieb
Mar 13 at 13:42
add a comment |
As part of a Typescript 3 monorepo I was trying to reference a package (project_2) from another one (project_1) in the same repo. The repo looks like:
|- project_1
| |- package.json (@projects/project_1)
| |- tsconfig.json
| |- src
| |- foo.ts
|- project_2
|- package.json (@projects/project_2)
|- tsconfig.json
|- src
|- bar.ts
foo.ts references bar.ts with the following line:
import { bar } from "@projects/project_2/src/bar";
When I run
cd project_1 && yarn exec tsc -- --traceResolution
Starting in Typescript 2.9 I get the following message:
======== Resolving module '@projects/project_2/src/bar' from '/home/jesuspc/Code/test2/project_1/src/foo.ts'.
======== Module resolution kind is not specified, using 'NodeJs'. 'baseUrl' option is set to
'/home/jesuspc/Code/test2/', using this value to
resolve non-relative module name '@projects/project_2/src/bar'.
'paths' option is specified, looking for a pattern to match module
name '@projects/project_2/src/bar'. Module name
'@projects/project_2/src/bar', matched pattern '@projects/'. Trying
substitution './', candidate module location: './project_2/src/bar'.
Loading module as file / folder, candidate module location
'/home/jesuspc/Code/test2/project_2/src/bar',
target file type 'TypeScript'. File
'/home/jesuspc/Code/test2/project_2/src/bar.ts'
exist - use it as a name resolution result.
======== Module name '@projects/project_2/src/bar' was successfully resolved to
'/home/jesuspc/Code/test2/project_2/src/bar.ts'.
======== src/foo.ts:1:24 - error TS2307: Cannot find module '@projects/project_2/src/bar'.
1 import { bar, x } from "@projects/project_2/src/bar";
So apparently the module was resolved properly:
"Module name '@projects/project_2/src/bar' was successfully resolved to '/home/jesuspc/Code/test2/project_2/src/bar.ts'"
but then it failed with:
@projects/project_2/src/bar not found
which does not make sense to me.
I have noticed that the module gets resolved properly in Typescript 2.8 and the compilation succeeds. I haven't been able to find any relevant change between 2.8 and 2.9 in the patch notes.
Why is it reporting that the module location is properly resolved first to then complain that it can not been found?
I have pushed the code to reproduce the issue to this repo.
typescript
As part of a Typescript 3 monorepo I was trying to reference a package (project_2) from another one (project_1) in the same repo. The repo looks like:
|- project_1
| |- package.json (@projects/project_1)
| |- tsconfig.json
| |- src
| |- foo.ts
|- project_2
|- package.json (@projects/project_2)
|- tsconfig.json
|- src
|- bar.ts
foo.ts references bar.ts with the following line:
import { bar } from "@projects/project_2/src/bar";
When I run
cd project_1 && yarn exec tsc -- --traceResolution
Starting in Typescript 2.9 I get the following message:
======== Resolving module '@projects/project_2/src/bar' from '/home/jesuspc/Code/test2/project_1/src/foo.ts'.
======== Module resolution kind is not specified, using 'NodeJs'. 'baseUrl' option is set to
'/home/jesuspc/Code/test2/', using this value to
resolve non-relative module name '@projects/project_2/src/bar'.
'paths' option is specified, looking for a pattern to match module
name '@projects/project_2/src/bar'. Module name
'@projects/project_2/src/bar', matched pattern '@projects/'. Trying
substitution './', candidate module location: './project_2/src/bar'.
Loading module as file / folder, candidate module location
'/home/jesuspc/Code/test2/project_2/src/bar',
target file type 'TypeScript'. File
'/home/jesuspc/Code/test2/project_2/src/bar.ts'
exist - use it as a name resolution result.
======== Module name '@projects/project_2/src/bar' was successfully resolved to
'/home/jesuspc/Code/test2/project_2/src/bar.ts'.
======== src/foo.ts:1:24 - error TS2307: Cannot find module '@projects/project_2/src/bar'.
1 import { bar, x } from "@projects/project_2/src/bar";
So apparently the module was resolved properly:
"Module name '@projects/project_2/src/bar' was successfully resolved to '/home/jesuspc/Code/test2/project_2/src/bar.ts'"
but then it failed with:
@projects/project_2/src/bar not found
which does not make sense to me.
I have noticed that the module gets resolved properly in Typescript 2.8 and the compilation succeeds. I haven't been able to find any relevant change between 2.8 and 2.9 in the patch notes.
Why is it reporting that the module location is properly resolved first to then complain that it can not been found?
I have pushed the code to reproduce the issue to this repo.
typescript
typescript
edited Jan 5 at 20:11
Jesuspc
asked Jan 4 at 18:26
JesuspcJesuspc
547214
547214
Consider using lerna (that can use yarn beneath) for automatic setup of linkd between your packages.
– wookieb
Mar 13 at 13:42
add a comment |
Consider using lerna (that can use yarn beneath) for automatic setup of linkd between your packages.
– wookieb
Mar 13 at 13:42
Consider using lerna (that can use yarn beneath) for automatic setup of linkd between your packages.
– wookieb
Mar 13 at 13:42
Consider using lerna (that can use yarn beneath) for automatic setup of linkd between your packages.
– wookieb
Mar 13 at 13:42
add a comment |
1 Answer
1
active
oldest
votes
What I did:
- In
project_1
, changed the path to your dependency to"@projects/project_2": "../project_2"
- Still in
project_1
, installed@types/node
Now when I run yarn exec tsc
it works as expected.
✨ Done in 3.48s.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54044257%2ftypescript-module-was-successfully-resolved-but-cannot-be-found%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
What I did:
- In
project_1
, changed the path to your dependency to"@projects/project_2": "../project_2"
- Still in
project_1
, installed@types/node
Now when I run yarn exec tsc
it works as expected.
✨ Done in 3.48s.
add a comment |
What I did:
- In
project_1
, changed the path to your dependency to"@projects/project_2": "../project_2"
- Still in
project_1
, installed@types/node
Now when I run yarn exec tsc
it works as expected.
✨ Done in 3.48s.
add a comment |
What I did:
- In
project_1
, changed the path to your dependency to"@projects/project_2": "../project_2"
- Still in
project_1
, installed@types/node
Now when I run yarn exec tsc
it works as expected.
✨ Done in 3.48s.
What I did:
- In
project_1
, changed the path to your dependency to"@projects/project_2": "../project_2"
- Still in
project_1
, installed@types/node
Now when I run yarn exec tsc
it works as expected.
✨ Done in 3.48s.
edited Mar 19 at 15:23
answered Mar 12 at 23:19
Karol MajewskiKarol Majewski
4,5641316
4,5641316
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54044257%2ftypescript-module-was-successfully-resolved-but-cannot-be-found%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Consider using lerna (that can use yarn beneath) for automatic setup of linkd between your packages.
– wookieb
Mar 13 at 13:42