ts-project-bundle
Advanced tools
Weekly downloads
Readme
A simple bundler for TypeScript projects using TypeScript project references.
This is a prototype! Please create an issue to give feedback.
Please see my other repo for some examples of TypeScript projects that demonstrate project references.
If you like this project, please star this repo and support my work
Open a terminal and navigate to your main TypeScript project:
cd project-root/main-project
Your main project must use TypeScript project references to specify how it depends on shared TypeScript libraries.
First compile your project and it's dependencies:
npx tsc --build
Note the use of the --build
argument. This causes dependent projects to be built as well.
Now install ts-project-bundle
into your main project as a dev dependency:
npm install --save-dev ts-project-bundle
Now run ts-project-bundle
against your main project:
ts-project-bundle
ts-project-bundle
automatically uses the current working directory as the main project. You can also specify the project directory with the --project=<dir>
parameter.
ts-project-bundle
automatically detects referenced TypeScript libraries and the root path that contains both the main project and all the referenced libraries. The root path is required because it is required to reconstitute the directories for the main project and the library projects in the bundle. You can override the automatic root directory using the --root=<dir>
argument, use with care.
The main project directory and all library directories must be valid TypeScript projects and must each contains a tsconfig.json
file.
ts-project-bundle
automatically defaults the output directory for the bundle to ./out
under the project directory. You can set this specifically using the --out=<dir>
argument.
Here's how you might want to run this for a monorepo that contains microservices.
Directory structure:
some/path/my-application
microservices/ # Each subdirectory contains a TypeScript microservice.
microserviceA/
microserviceB/
libs/ # Each subdirectory contains a shared TypeScript library.
libA/
libB/
Here's how we can bundle the code for microserviceA
.
cd some/path/my-application/microservices/microserviceA
npx tsc --build # Compiles the microservice and all references libraries.
ts-project-bundler # Bundles combined code for microservice and libraries in the .out directory.
Clone this repo and then...
cd ts-project-bundle/test/test-project
npm install
npx tsc --build
ts-project-bundle --root=../ --project=./ --out=../../out
Clone this repo and then...
cd ts-project-bundle
npm install
npm run start:dev
FAQs
A simple bundler for TypeScript projects using TypeScript project references.
The npm package ts-project-bundle receives a total of 488 weekly downloads. As such, ts-project-bundle popularity was classified as not popular.
We found that ts-project-bundle demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket installs a Github app to automatically flag issues on every pull request and report the health of your dependencies. Find out what is inside your node modules and prevent malicious activity before you update the dependencies.