typhonjs
v1.0.96
Published
Maven/Gradle inspired build system/project manager for Node.js
Readme
What is Typhonjs?
Typhonjs is a JavaScript/TypeScript project manager inspired by tools like Maven and Gradle. It brings the power of modern CLI-driven builds and project management to the JavaScript ecosystem. Whether you're building a simple app or a massive enterprise project, Typhonjs is designed to help you get things.
If you're using pnpm, npm or yarn, just run:
# Typhon
pnpm add -g typhonjs
# Yarn
yarn global add typhonjs
# NPM
npm install --location=global typhonjsUsage
Initialize Your Project
Once Typhonjs is installed, create a new project with:
typhon initThis will set up a basic typh.config.js configuration file, which you can customize to suit your project.
Running Tasks
To run a build task, just use:
typh buildTyphonjs takes care of the rest, automatically executing the tasks defined in your configuration file. You can define your own custom tasks as well!
Configuration
Typhonjs is configured through the typh.config.js file. Here's a basic example:
module.exports = {
buildinfo: {
name: "example",
version: "1.0.0",
packageManager: "pnpm"
},
build: {
main: "com.example.ExampleClass" // dots are replaced with the path separator like Java
},
dependencies: {
"consola": "^3.4.2"
}
};In this example, we’ve defined two tasks: build and test. Each task has a description and an associated command that will be run when you invoke the task.
Plugins
Typhonjs is extensible! You can add plugins to customize its functionality. Just add them to the plugins array in the plugins.typh.js file:
This feature is still work in progress. Mainly this feature will adopt similar like idea of Gradle commands/plugins.
module.exports = {
plugins: [
ExamplePlugin
],
};License
Typhonjs is open-source and available under the MIT License.
Contributing
We love contributions! If you want to help make Typhonjs even better, feel free to fork the repo and submit a pull request. You can also open issues to report bugs or suggest features. Your input is always appreciated!
Contact
Got questions? Need help? You can reach me at [email protected], or open an issue on GitHub.
