{"id":15414968,"url":"https://github.com/lxsmnsyc/pridepack","last_synced_at":"2025-08-20T03:31:01.570Z","repository":{"id":39980197,"uuid":"294044142","full_name":"lxsmnsyc/pridepack","owner":"lxsmnsyc","description":"CLI for building TypeScript packages","archived":false,"fork":false,"pushed_at":"2024-07-12T16:59:01.000Z","size":3340,"stargazers_count":25,"open_issues_count":11,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-12-09T00:26:56.256Z","etag":null,"topics":["cli","esbuild","jest","linter","typescript","typescript-packages"],"latest_commit_sha":null,"homepage":"https://github.com/LyonInc/pridepack","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lxsmnsyc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-09T08:01:54.000Z","updated_at":"2024-07-12T16:59:06.000Z","dependencies_parsed_at":"2023-07-25T20:30:35.211Z","dependency_job_id":"c69db90f-bd9d-4acc-a6cc-bb8ce419debc","html_url":"https://github.com/lxsmnsyc/pridepack","commit_stats":{"total_commits":522,"total_committers":3,"mean_commits":174.0,"dds":0.01532567049808431,"last_synced_commit":"40ca7df099ae32062df95f51e10b4eef65411f02"},"previous_names":["lyoninc/pridepack"],"tags_count":96,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lxsmnsyc%2Fpridepack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lxsmnsyc%2Fpridepack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lxsmnsyc%2Fpridepack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lxsmnsyc%2Fpridepack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lxsmnsyc","download_url":"https://codeload.github.com/lxsmnsyc/pridepack/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230388131,"owners_count":18217755,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","esbuild","jest","linter","typescript","typescript-packages"],"created_at":"2024-10-01T17:05:23.050Z","updated_at":"2024-12-19T06:09:16.881Z","avatar_url":"https://github.com/lxsmnsyc.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# pridepack\n\n\u003e Zero-config CLI for building Typescript packages.\n\n## Install\n\n```bash\nnpm install -g pridepack\n```\n\n```bash\nyarn global add pridepack\n```\n\n## Features\n\n- Extremely-fast package building: Using [ESBuild](https://github.com/evanw/esbuild), you can build your packages in just seconds.\n- Linter setup: Creating a project with proper linting tools is already made for you.\n- Zero-config: No need to customize your building process, `pridepack` already handles that for you.\n\n### Templates\n\nSee [templates](https://github.com/lxsmnsyc/pridepack/tree/master/templates)\n\n## Usage\n\n### `pridepack init [template]`\n\nInitializes current working directory with the selected template. Package name is derived from the working directory's name.\n\n### `pridepack create \u003cname\u003e [template]`\n\nCreates a new project directory from the given template. `\u003cname\u003e` is any valid NPM package name. Project directory's name is derived from the supplied package name.\n\n### `pridepack clean`\n\nCleans output directory. Use this everytime there are added/removed files from the source directory.\n\n### `pridepack build`\n\nBuilds the source directory using ESBuild and emits type declaration files.\n\n### `pridepack watch`\n\nBuilds the source directory in watch mode.\n\n### `pridepack check`\n\nRuns no-emit type-checking.\n\n### `pridepack start`\n\nRuns the index file (based on `package.json`'s `type`) in production mode, respectively.\n\n### `pridepack dev`\n\nRuns the index file in development mode and runs the build in watch mode. Auto-reloads when detecting changes.\n\n## Environment Variables\n\nPridepack automically loads variables from `.env`, `.env.production` and `.env.development` whenever it is available, and uses the variables during compile-time. Variables are going to be registered under `process.env` or `import.meta.env`.\n\n`process.env.NODE_ENV` provides a way to check whether or not the code is being built during production or development mode. The same goes to `import.meta.env.MODE`, `import.meta.env.DEV` and `import.meta.env.PROD`\n\n```js\nif (process.env.NODE_ENV === 'development') {\n  // do stuff\n}\n// the same as\nif (import.meta.env.MODE === 'development') {\n  // do stuff\n}\nif (import.meta.env.DEV) {\n  // ...\n}\nif (!import.meta.env.PROD) {\n  // ...\n}\n```\n\n## Config\n\nEven though Pridepack encourages zero-config setup, Pridepack also includes config files. Pridepack config files can be either of the following:\n\n- `.pridepackrc`\n- `.pridepack.json`\n- `.pridepack.config.json`\n- `pridepack.json`\n- `pridepack.config.json`\n\nJS Config files are also supported, useful for loading environment variables and more.\n\n- `.pridepack.js`\n- `.pridepack.config.js`\n- `pridepack.js`\n- `pridepack.config.js`\n\n### Fields\n\n```js\n// pridepack config fields and their default values.\n{\n  // Directory where the bundled output is going to be generated\n  \"outputDir\": \"dist\",\n  // Path to the tsconfig.json\n  \"tsconfig\": \"tsconfig.json\",\n  // Optional, maps the subpackage entrypoint to the source file\n  // This is used for generating the `exports` field and constructing\n  // the subpackages. The default value is below.\n  \"entrypoints\": {\n    \".\": \"src/index.ts\", // Maps to `my-package`\n    // Example other entrypoint (not a default value)\n    \"./example\": \"src/example.ts\" // Maps to `my-package/example`\n  },\n  // Refers to the target entrypoint to be used for `start` and `dev` commands\n  // Value is mapped from `entrypoints`\n  \"startEntrypoint\": \".\",\n  // Target ES version or Browser versions, see https://esbuild.github.io/api/#target\n  \"target\": \"es2018\",\n  // What to do with JSX expressions, see https://esbuild.github.io/api/#jsx\n  \"jsx\": \"transform\",\n  // See https://esbuild.github.io/api/#jsx-factory\n  \"jsxFactory\": \"React.createElement\",\n  // See https://esbuild.github.io/api/#jsx-fragment\n  \"jsxFragment\": \"React.Fragment\",\n  // Can only be used on JS config files, allows usage of ESBuild plugins\n  // This field can also accept a callback that receives the current compilation mode\n  // \n  \"plugins\": ({ isDev, isESM, isCJS }) =\u003e [\n    somePlugin({ isDev }),\n  ],\n}\n```\n\n## Soon\n\n- Code-splitting (requires ESBuild)\n\n## License\n\nMIT © [lxsmnsyc](https://github.com/lxsmnsyc)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flxsmnsyc%2Fpridepack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flxsmnsyc%2Fpridepack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flxsmnsyc%2Fpridepack/lists"}