Comments (4)
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.
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.
@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.
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)
- Nestjs example is broken HOT 1
- Which version of yarn HOT 2
- "Experimental support for decorators is a feature that is subject to change in a future release" HOT 1
- Adding tests to CRA example yields an error HOT 6
- Getting build error in examples/cra HOT 1
- Overcoming the Need for TSConfig Multiple Inheritance HOT 4
- How would you add aliases in each of the packages HOT 3
- Add example for sub module exports HOT 1
- simple try to run pnpm run test failed after following steps HOT 2
- Missing documentation or not possible? HOT 2
- Adding a subdirectory in shared project requires `src/` in import, module not found error HOT 1
- How it works with vite & Styled Components HOT 1
- How should I go about using it, like copying the code? I didn't see the instructions for use. HOT 1
- How to make find all references working? HOT 2
- Understanding why `foo` is mapped to `foo/src` in the `nextjs` branch HOT 1
- Type declarations causing errors in Storybook HOT 2
- How can I handle css/less in @nighttrax/components HOT 1
- This problem must appear when using react-router-dom@6 HOT 1
- Problems of adding Sveltekit in apps HOT 2
- Error: 'nest build' not working HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ts-monorepo.