{"id":15678014,"url":"https://github.com/jaywcjlove/bannerjs","last_synced_at":"2025-05-07T02:01:40.887Z","repository":{"id":46651083,"uuid":"58149811","full_name":"jaywcjlove/bannerjs","owner":"jaywcjlove","description":"Add a banner to the string. Get one-line/multi-line comment banner based on package.json.","archived":false,"fork":false,"pushed_at":"2025-03-27T14:13:42.000Z","size":110,"stargazers_count":11,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-21T18:21:22.607Z","etag":null,"topics":["banner","cli","gulp-plugin","javascript","nodejs"],"latest_commit_sha":null,"homepage":"https://jaywcjlove.github.io/bannerjs","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jaywcjlove.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"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,"zenodo":null},"funding":{"custom":"https://jaywcjlove.github.io/#/sponsor"}},"created_at":"2016-05-05T17:48:42.000Z","updated_at":"2024-12-30T17:10:18.000Z","dependencies_parsed_at":"2022-08-24T08:10:32.558Z","dependency_job_id":"784ff693-548f-40c7-a55c-cc196674594f","html_url":"https://github.com/jaywcjlove/bannerjs","commit_stats":{"total_commits":57,"total_committers":4,"mean_commits":14.25,"dds":"0.14035087719298245","last_synced_commit":"873c497b52e19165ca6a1ab4d712b8f5f08e5c33"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaywcjlove%2Fbannerjs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaywcjlove%2Fbannerjs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaywcjlove%2Fbannerjs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jaywcjlove%2Fbannerjs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jaywcjlove","download_url":"https://codeload.github.com/jaywcjlove/bannerjs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250878893,"owners_count":21501742,"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":["banner","cli","gulp-plugin","javascript","nodejs"],"created_at":"2024-10-03T16:15:06.128Z","updated_at":"2025-05-07T02:01:40.723Z","avatar_url":"https://github.com/jaywcjlove.png","language":"TypeScript","funding_links":["https://jaywcjlove.github.io/#/sponsor"],"categories":[],"sub_categories":[],"readme":"# bannerjs\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![Build \u0026 Deploy](https://github.com/jaywcjlove/bannerjs/actions/workflows/ci.yml/badge.svg)](https://github.com/jaywcjlove/bannerjs/actions/workflows/ci.yml)\n[![Coverage Status](https://jaywcjlove.github.io/bannerjs/badges.svg)](https://jaywcjlove.github.io/bannerjs/lcov-report/)\n[![Repo Dependents](https://badgen.net/github/dependents-repo/jaywcjlove/bannerjs)](https://github.com/jaywcjlove/bannerjs/network/dependents)\n[![npm version](https://img.shields.io/npm/v/bannerjs.svg)](https://www.npmjs.com/package/bannerjs)\n[![NPM Download](https://img.shields.io/npm/dm/bannerjs.svg?style=flat)](https://www.npmjs.com/package/bannerjs)\n\nAdd a banner to a string. Get one-line/multi-line comment banner based on package.json.\n\n## Install\n\nThis package is [ESM only](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c): Node 14+ is needed to use it and it must be `import` instead of `require`.\n\n```bash\nnpm install bannerjs --save\n```\n\nOne-line results in:\n\n```js\n/*! bannerjs v1.0.8 | MIT (c) 2016 kenny wang \u003cwowohoo@qq.com\u003e | https://github.com/jaywcjlove/bannerjs */\n```\n\nMulti-line results in:\n\n```js\n/*!\n * bannerjs v1.0.0\n * Add a banner to a string. Get one-line/multi-line comment banner based on package.json.\n * \n * Copyright (c) 2016 kenny wang \u003cwowohoo@qq.com\u003e\n * https://github.com/jaywcjlove/bannerjs\n *\n * Licensed under the MIT license.\n */\n```\n\n## Structure\n\nThe following keys should be defined in package.json:\n\n```json\n{\n  \"name\": \"bannerjs\",\n  \"version\": \"1.0.0\",\n  \"description\": \"Add a banner to a string. Get one-line/multi-line comment banner based on package.json.\",\n  \"license\": \"MIT\",\n  \"author\": {\n    \"name\": \"kenny wang\"\n  },\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/jaywcjlove/bannerjs.git\"\n  }\n}\n```\n\n`author` value can be defined like object or simply string too.\n\n\n## Use\n\n### option\n\n- `multibanner(option)` Multi-line results\n- `onebanner(option)` One-line results\n\n```js\nvar banner = require('bannerjs');\nbannerjs.multibanner({\n  author:\"banner.js\",\n  homepage:\"http://....\",\n  name:\"banner.js\",\n  license:\"MIT\",\n  version:1.2.3,\n  description:\"description\"\n})\n```\n\n### API\n\n```ts\nimport { PackageJson } from 'types-package-json';\nexport * from './cli.js';\n\nexport declare function getPackage(rootPath?: string): PackageJson;\nexport declare function onebanner(option?: PackageJson, rootPath?: string): string;\nexport declare function multibanner(option?: PackageJson, rootPath?: string): string;\n```\n\n## Use in gulp\n\n- `bannerjs.multibanner()` Multi-line results\n- `bannerjs.onebanner()` One-line results\n\n```js \nvar gulp = require('gulp');\nvar banner = require('gulp-banner');\nvar bannerjs = require('bannerjs');\n\ngulp.task('default', function() {\n  gulp.src('./test.js')\n    .pipe(banner(bannerjs.multibanner()))\n    .pipe(gulp.dest('dist/'));\n});\n```\n\n## Use in Node\n\n```js\nvar fs = require('fs');\nvar banner = require('bannerjs');\nvar uglify = require('uglify-js')\n\nvar code = fs.readFileSync('src/test.js', 'utf-8')\nvar minified = banner.onebanner() + '\\n' + uglify.minify(code, {\n  fromString: true,\n  output: {\n    ascii_only: true\n  }\n}).code;\n\nfs.writeFileSync('src/test.js', minified);\n```\n\n## Use in Rollup\n\n```js\nimport banner from 'bannerjs';\n\n// rollup.config.js\nexport default {\n  input: 'src/main.js',\n  output: {\n    file: 'bundle.js',\n    format: 'cjs',\n    banner: banner.multibanner()\n  }\n};\n```\n\n\n## Command Line\n\n```bash\nUsage: bannerjs\n\nPipe Usage: bannerjs\n\nOptions:\n\n -m --multi     Output multi-line results\n -o --one       Output one-line results\n```\n\nYou can easilly pipe unix commands together like:\n\n```bash\ncat my-js.js | bannerjs -o | uglify-js \u003e my-js.min.js\n```\n\n**Npm Script**\n\n```json\n{\n  \"scripts\":{\n    \"build:min\": \"cat my-js.js | uglifyjs | bannerjs -o \u003e dist/my-js.min.js\",\n    \"build:dist\": \"cat my-js.js | bannerjs -m | uglifyjs -b beautify=true --comments 'all' \u003e dist/my-js.js \"\n  }\n}\n```\n\n# License\n\nMIT license\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaywcjlove%2Fbannerjs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjaywcjlove%2Fbannerjs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjaywcjlove%2Fbannerjs/lists"}