GithubHelp home page GithubHelp logo

Comments (4)

NiGhTTraX avatar NiGhTTraX commented on May 17, 2024 1

Is there an alternative to tsconfig-paths to get paths like package/src/file or package/file working? Or does tsconfig-paths also work without ts-node?

tsconfig-paths does support node, but requires some special usage.

How can I set this up so that when you start project-a you don't need to build project-b first?

This depends on how you build the project. A framework/tool that has support for tsconfig-paths will compile all monorepo dependencies when building/starting a single package. You will need to use the path aliases in the build config (see answer below as well) so that everything gets compiled in one go. All of the tool/framework examples in this repo work this way.

I wondered why tsconfig.json and tsconfig.build.json is split. Maybe you can explain?

Depending on the package, you may need to skip the path aliases during build time so that dependencies are treated as external. That's why I separated the build config from the development one (that your IDE would use). If you're publishing packages, then you most likely want to skip the aliases during the build. If, on the other hand, you're building apps/bundles you can use the aliases to compile all the dependencies.


For your Azure example, if you're limited to using node instead of ts-node then I would use a bundler (rollup, webpack etc.) together with tsconfig-paths to compile everything and produce a single artifact.

from ts-monorepo.

panmona avatar panmona commented on May 17, 2024

Thank you so much for that detailed answer, it was really helpful! 👍

tsconfig-paths together with webpack (as that was the easiest to setup) is working for me now.
Now import {meaningOfLife} from '@ttt/other/src/meaningOfLife' works. This also builds all of it in one go now 👍

What I'm still struggling with though is getting import { meaningOfLife } from '@ttt/other/meaningOfLife' working. I hope that you can give me some pointers for this even if it is just a different issue in this repository. I couldn't find any other issue asking for this though.


I still have the following type aliases set up:

"paths": {
  "@ttt/other": ["src/other/src/*"],
  "@ttt/*": ["src/*/src"],
}

But I get Cannot find module '@ttt/other/meaningOfLife' or its corresponding type declarations.
(I have pushed my newest code here: https://github.com/ultimate-ttt/ttt-backends/tree/webpack, the webpack config is here: https://github.com/ultimate-ttt/ttt-backends/blob/webpack/src/connection/webpack.config.js)

from ts-monorepo.

NiGhTTraX avatar NiGhTTraX commented on May 17, 2024

@panmau you're missing the wildcard from the alias, it should be @ttt/other/*. You can check the recently updated components package for a working example.

from ts-monorepo.

panmona avatar panmona commented on May 17, 2024

That was an easy fix, I somehow didn't see that last asterix.
I will close this issue now as this is now fully solved.

Thank you so much again!

from ts-monorepo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.