npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

project-forge

v1.0.3

Published

Typescript, Javascript project builder.

Downloads

14

Readme

Project-Forge

Project-Forge is a Node.js build tool designed to streamline the process of building projects. It simplifies the workflow by automating tasks such as compiling TypeScript to JavaScript, copying files, and running commands before and after the build process.

Installation

To install Project-Forge, use npm, yarn or bun:

npm install project-forge --save-dev

Or

yarn add project-forge

Usage

In the root of your project, create a build configuration file named buildConfiguration.ts. This file will contain the configuration for your build process.

Here's an example of a basic buildConfiguration.ts file:

import { ProjectForge } from "project-forge";

const builder = new ProjectForge("npm run build", "../UserService");

builder.beforeBuild(async () => {
  await builder.copy("./package.json").toBuildDirectory();
  await builder.exec("npm install --omit=dev").inBuildDirectory();
});

builder.afterBuild(async () => {
  await builder.copy("./build", "MoveContentToRoot").toBuildDirectory();
  await builder.copy("./.env").toBuildDirectory();
});

builder.build();

Run the Build Process:

Execute the build process by running the following command in your terminal:

ts-node buildConfiguration.ts

This will execute the tasks defined in your buildConfiguration.ts file and generate a production build for your project.

That's it! You've successfully used Project-Forge to streamline your Node.js build process. You can customize your build configuration to include additional tasks as needed for your project.

APIs

Project-Forge Constructor

new ProjectForge(buildCommand: string, buildDirectory: string)
  • buildCommand: The command to run for building the TypeScript project (e.g., npm run build).
  • buildDirectory: The directory where the build artifacts will be placed.

Methods

 beforeBuild(fnc: Function)

Registers a function to be executed before the build process starts.

  • fnc: An asynchronous function to be executed before the build process.
afterBuild(fnc: Function)

Registers a function to be executed after the build process completes.

  • fnc: An asynchronous function to be executed after the build process.
toBuildDirectory();

Copies the specified file or directory to the build directory.

to(location: string)

Copies the specified file or directory to a given location.

inBuildDirectory();

Executes the specified command in the build directory.

build();

Starts the build process, executing registered beforeBuild and afterBuild functions.

Contributing

Contributions are welcome! Please feel free to submit a pull request or open an issue on GitHub.

License

This project is licensed under the MIT License.