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;
}







1















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.










share|improve this question

























  • Consider using lerna (that can use yarn beneath) for automatic setup of linkd between your packages.

    – wookieb
    Mar 13 at 13:42


















1















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.










share|improve this question

























  • Consider using lerna (that can use yarn beneath) for automatic setup of linkd between your packages.

    – wookieb
    Mar 13 at 13:42














1












1








1








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.










share|improve this question
















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






share|improve this question















share|improve this question













share|improve this question




share|improve this question








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



















  • 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












1 Answer
1






active

oldest

votes


















1














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.





share|improve this answer


























    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
    });


    }
    });














    draft saved

    draft discarded


















    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









    1














    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.





    share|improve this answer






























      1














      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.





      share|improve this answer




























        1












        1








        1







        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.





        share|improve this answer















        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.






        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Mar 19 at 15:23

























        answered Mar 12 at 23:19









        Karol MajewskiKarol Majewski

        4,5641316




        4,5641316
































            draft saved

            draft discarded




















































            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.




            draft saved


            draft discarded














            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





















































            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







            Popular posts from this blog

            Monofisismo

            Angular Downloading a file using contenturl with Basic Authentication

            Olmecas