{"id":15207148,"url":"https://github.com/cristopher1/generator-quality-vue3-plugin","last_synced_at":"2026-03-10T06:04:09.051Z","repository":{"id":208348341,"uuid":"719785726","full_name":"cristopher1/generator-quality-vue3-plugin","owner":"cristopher1","description":"Yeoman generator to create a Vue3 plugin with eslint, prettier, commitlint, husky, babel and other tools.","archived":false,"fork":false,"pushed_at":"2024-04-04T01:58:15.000Z","size":662,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-09T06:52:23.704Z","etag":null,"topics":["es5","es6","generator","vue3","yeoman","yeoman-generator"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/generator-quality-vue3-plugin","language":"JavaScript","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/cristopher1.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":"2023-11-16T22:33:29.000Z","updated_at":"2024-03-26T00:23:21.000Z","dependencies_parsed_at":null,"dependency_job_id":"0b7e8704-2f92-4b72-935e-5d5736ab02c1","html_url":"https://github.com/cristopher1/generator-quality-vue3-plugin","commit_stats":{"total_commits":59,"total_committers":1,"mean_commits":59.0,"dds":0.0,"last_synced_commit":"ec186d70ac8ee54142e700239b50c2abbe15610b"},"previous_names":["cristopher1/generator-quality-vue3-plugin"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/cristopher1/generator-quality-vue3-plugin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cristopher1%2Fgenerator-quality-vue3-plugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cristopher1%2Fgenerator-quality-vue3-plugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cristopher1%2Fgenerator-quality-vue3-plugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cristopher1%2Fgenerator-quality-vue3-plugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cristopher1","download_url":"https://codeload.github.com/cristopher1/generator-quality-vue3-plugin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cristopher1%2Fgenerator-quality-vue3-plugin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30326878,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["es5","es6","generator","vue3","yeoman","yeoman-generator"],"created_at":"2024-09-28T06:22:52.440Z","updated_at":"2026-03-10T06:04:09.019Z","avatar_url":"https://github.com/cristopher1.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eWelcome to generator-quality-vue3-plugin 👋\u003c/h1\u003e\n\u003cp\u003e\n  \u003cimg alt=\"Version\" src=\"https://img.shields.io/badge/version-1.0.3-blue.svg?cacheSeconds=2592000\" /\u003e\n  \u003ca href=\"https://github.com/cristopher1/generator-quality-vue3-plugin#readme\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Documentation\" src=\"https://img.shields.io/badge/documentation-yes-brightgreen.svg\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/cristopher1/generator-quality-vue3-plugin/graphs/commit-activity\" target=\"_blank\"\u003e\n    \u003cimg alt=\"Maintenance\" src=\"https://img.shields.io/badge/Maintained%3F-yes-green.svg\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/cristopher1/generator-quality-vue3-plugin/blob/master/LICENSE\" target=\"_blank\"\u003e\n    \u003cimg alt=\"License: MIT\" src=\"https://img.shields.io/github/license/cristopher1/generator-quality-vue3-plugin\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003e Yeoman generator to create a Vue3 plugin with eslint, prettier, commitlint, husky, babel and other tools.\n\n### 🏠 [Homepage](https://github.com/cristopher1/generator-quality-vue3-plugin)\n\nThis generator was created using [generator-esmodules-generator](https://www.npmjs.com/package/generator-esmodules-generator) version 0.1.1\n\nThe `generator-quality-vue3-plugin` provides a structure to create a Vue3 plugin similar to that used in the: [@cljmenez/vue-localstorage-reactive](https://www.npmjs.com/package/@cljimenez/vue-localstorage-reactive). The structure created by this generator includes:\n\n- [Jest](https://jestjs.io/) with [jest-environment-jsdom](https://jestjs.io/es-ES/docs/tutorial-jquery)\n- [Babel](https://babeljs.io/) with [@babel/cli](https://babeljs.io/docs/babel-cli), [@babel/core](https://babeljs.io/docs/babel-core),\n  [@babel/plugin-transform-runtime](https://babeljs.io/docs/babel-plugin-transform-runtime), [@babel/preset-env](https://babeljs.io/docs/babel-preset-env),\n  [@babel/runtime-corejs3](https://www.npmjs.com/package/@babel/runtime-corejs3) and [core-js](https://www.npmjs.com/package/core-js)\n- [Eslint](https://eslint.org/) with [eslint-config-prettier](https://www.npmjs.com/package/eslint-config-prettier), [eslint-config-standard](https://www.npmjs.com/package/eslint-config-standard),\n  [eslint-plugin-jest](https://www.npmjs.com/package/eslint-plugin-jest), [eslint-plugin-jsdoc](https://www.npmjs.com/package/eslint-plugin-jsdoc), etc.\n- [Prettier](https://prettier.io/) with [prettier-plugin-jsdoc](https://www.npmjs.com/package/prettier-plugin-jsdoc)\n- [Lint-staged](https://www.npmjs.com/package/lint-staged)\n- [Faker](https://fakerjs.dev/)\n- [Commitlint](https://commitlint.js.org/#/)\n- [Rollup](https://rollupjs.org/) with [@rollup/plugin-babel](https://www.npmjs.com/package/@rollup/plugin-babel), [@rollup/plugin-node-resolve](https://www.npmjs.com/package/@rollup/plugin-node-resolve) and [rollup-plugin-dts](https://www.npmjs.com/package/rollup-plugin-dts)\n- [Readme-md-generator](https://github.com/kefranabg/readme-md-generator)\n- [Husky](https://www.npmjs.com/package/husky)\n- Others\n\nExample of a Vue3 plugin generated by `generator-quality-vue3-plugin`:\n\n![example_generated_by_generator_quality_vue3_plugin](https://github.com/cristopher1/generator-quality-vue3-plugin/assets/21159930/dd3d76be-835b-42c0-ae9f-5eaf8d4927be)\n\nThis generator uses rollup to create the dist folder. The packages published by this generator are exported using the following structure:\n\npackage.json\n\n```json\n\"main\": \"./dist/cjs/index.cjs\",\n\"types\": \"./dist/types/index.d.ts\",\n\"exports\": {\n  \"types\": \"./dist/types/index.d.ts\",\n  \"import\": \"./dist/esm/index.mjs\",\n  \"require\": \"./dist/cjs/index.cjs\"\n},\n\"files\": [\n  \"dist\"\n]\n```\n\n### [Index](#index)\n\n- [Installation](#installation)\n- [The folder structure](#structure)\n- [The configuration files](#configuration-files)\n- [The question: Do you want to automatically run the scripts that configure the package, then installing the dependencies?](#configuring-the-project-automatically)\n- [The scripts in package.json](#scripts)\n- [Getting To Know Yeoman](#know-yeoman)\n- [Author](#author)\n- [Contributing](#contributing)\n- [Show your support](#support)\n- [License](#license)\n\n## \u003ca id=\"installation\"\u003e\u003c/a\u003e Installation\n\nFirst, install [Yeoman](http://yeoman.io) and generator-quality-vue3-plugin using [npm](https://www.npmjs.com/) (we assume you have pre-installed [node.js](https://nodejs.org/)).\n\n```bash\nnpm install -g yo\nnpm install -g generator-quality-vue3-plugin\n```\n\nThen generate your new project:\n\n```bash\nyo quality-vue3-plugin\n```\n\n## \u003ca id=\"structure\"\u003e\u003c/a\u003e The folder structure\n\nThe folders created by this generator are:\n\n- `__tests__`: Contains the tests.\n- `.husky`: Contains the scripts used by husky.\n- `coverage`: Contains the test coverage.\n- `dist`: Includes three folders:\n  - `cjs`: Source code transpiled to es5 (index.cjs).\n  - `esm`: Source code transpiled to es6 (index.mjs).\n  - `types`: Declaration file (index.d.ts).\n- `src`: Contains the source code. It includes the files and folders\n\n  - `globals`: Contains the files to extends `@vue/runtime-core`. The functions $getGreeting and $greet are added in globalProperties for this generator when it creates the default plugin:\n\n    ![@vue-runtime-core](https://github.com/cristopher1/generator-quality-vue3-plugin/assets/21159930/1fd6e932-093d-4893-bcc5-e7bcfc0b486b)\n\n  - `gretting`: Example folder. Contains the functions $getGreeting and $greet.\n  - `installer`: Contains the class used to install the plugin (class that contains the install method).\n\n  - `main.js`: Exports the function createInstaller used to create the installer object that will be used to install the plugin in Vue3.\n\n    Example:\n\n    ![createInstaller](https://github.com/cristopher1/generator-quality-vue3-plugin/assets/21159930/e060a976-bb80-4947-bdfa-8a7ca11c189b)\n\n    ![greetFunction](https://github.com/cristopher1/generator-quality-vue3-plugin/assets/21159930/e0cbf619-8afc-4500-aef4-5858d00e20a8)\n\n    ![getGreetingFunction](https://github.com/cristopher1/generator-quality-vue3-plugin/assets/21159930/cdc1327b-e41d-4b02-8d66-c4b6cb0f0631)\n\n    The main.js file also it is the entrypoint used by rollup to generate the es5 and es6 folders (see rollup.config.js or rollup.config.mjs)\n\n- `index.ts`: Exports the globals/index.js content and the createInstaller. It is the entrypoint used by rollup to generate the types folder (see rollup.config.js or rollup.config.mjs)\n\n## \u003ca id=\"configuration-files\"\u003e\u003c/a\u003e The configuration files\n\nThe configuration files included are:\n\n- Eslint: `.eslintignore` (the files and directories ignored by eslint) and `.eslintrc.json` (configuration used by eslint).\n\n- Git: `.gitignore` (the files and directories ignored by git).\n\n- Lint-staged: `.lintstagedrc.json` (configuration used by lint-staged).\n\n- Prettier: `.prettierignore` (the files and directories ignored by prettier) and `.prettierrc.json` (configuration used by prettier).\n\n- Babel: `babel.config.json` (configuration used by babel):\n\n  - The `env.buildCommonjs` contains the configuration used to transpile the source code to es5. It is used into `rollup.config.js` and `rollup.config.mjs`.\n\n  - The `env.buildESmodules` contains the configuration used to transpile the source code to es6. It is used into `rollup.config.js` and `rollup.config.mjs`.\n\n  - If the package.json, generated by this generator, contains the field `type:commonjs` will be included the `env.test` property in babel.config.json. That property is used by jest to transpile the source code to es5 before to run the tests.\n\n- Commitlint: `commitlint.config.js` (configuration used by commitlint).\n\n- Jest: `jest.config.js` (configuration used by jest).\n\n- Rollup: `rollup.config.js` and `rollup.config.mjs` (configuration used by rollup).\n\n- TypeScript: `tsconfig.json` (configuration used by TypeScript compiler).\n\n## \u003ca id=\"configuring-the-project-automatically\"\u003e\u003c/a\u003e The question: Do you want to automatically run the scripts that configure the package, then installing the dependencies?\n\nWhen you selects the true value, the following scripts ubicated in the package.json are executed:\n\n- `init`\n- `documentation:create`\n- `test`\n- `build`\n\nIf you selects the false value, you must run `npm run init` obligatory.\n\n## \u003ca id=\"scripts\"\u003e\u003c/a\u003e The scripts in package.json\n\nThe more important scripts added into the package.json created by this generator are:\n\n- `\"init\"`: Runs the commands necessary to initialize the package, for example `init:husky`.\n- `\"documentation:create\"`: Creates documentation using readme-md-generator.\n- `\"format\"`: Checks the format using prettier.\n- `\"format:fix\"`: Fixes the format using prettier.\n- `\"format:build-stage\"` and `\"format:build-stage:fix\"`: similar to `\"format\"` and `\"format:fix\"`. They used when the `npm run build` is called.\n- `\"lint\"`: static code analysis using eslint.\n- `\"lint:fix\"`: Fixes the code using eslint.\n- `\"lint:build-stage\"` and `\"lint:build-stage:fix\"`: similar to `\"lint\"` and `\"lint:fix\"`. They are used when the `npm run build` is called.\n- `\"build:bundle\"`: Bundles the files into src folder using rollup. It is used when the `npm run build` is called.\n- `\"build:tsc\"`: Generates .d.ts files using the TypeScript compilator. It is used when the `npm run build` is called.\n- `\"build\"`: Generates the dist folder that contains the cjs folder (source code transpiled to es5), the esm folder (source code transpiled to es6), and types folder (it contains the declaration files).\n- `\"prepublishOnly\"`: Used before publishing your package using `npm publish`. Runs `npm run build`.\n- `\"test\"`: Runs the tests using jest.\n- `\"commitlint\"`: Runs commitlint. It is used into .husky/commit-msg file. It is called by the commit-msg hook. See [git hook](https://www.atlassian.com/git/tutorials/git-hooks#:~:text=The%20commit%2Dmsg%20hook%20is,file%20that%20contains%20the%20message.).\n- `\"lint-staged\"`: Runs lint-staged. It is used into .husky/pre-commit file. It is called by the pre-commit hook. See [git hook](https://www.atlassian.com/git/tutorials/git-hooks#:~:text=The%20commit%2Dmsg%20hook%20is,file%20that%20contains%20the%20message.).\n- `\"quality-check\"`: Runs `npm run format \u0026\u0026 npm run lint \u0026\u0026 npm run test`. It is used into .husky/pre-push file. It is called by the pre-push hook See [git hook](https://www.atlassian.com/git/tutorials/git-hooks#:~:text=The%20commit%2Dmsg%20hook%20is,file%20that%20contains%20the%20message.).\n\n## \u003ca id=\"know-yeoman\"\u003e\u003c/a\u003e Getting To Know Yeoman\n\n- Yeoman has a heart of gold.\n- Yeoman is a person with feelings and opinions, but is very easy to work with.\n- Yeoman can be too opinionated at times but is easily convinced not to be.\n- Feel free to [learn more about Yeoman](http://yeoman.io/).\n\n## \u003ca id=\"author\"\u003e\u003c/a\u003e Author\n\n👤 **Cristopher Jiménez**\n\n- Github: [@cristopher1](https://github.com/cristopher1)\n\n## \u003ca id=\"contributing\"\u003e\u003c/a\u003e 🤝 Contributing\n\nContributions, issues and feature requests are welcome!\u003cbr /\u003eFeel free to check [issues page](https://github.com/cristopher1/generator-quality-vue3-plugin/issues). You can also take a look at the [contributing guide](https://github.com/cristopher1/generator-quality-vue3-plugin/blob/master/CONTRIBUTING.md).\n\n## \u003ca id=\"support\"\u003e\u003c/a\u003e Show your support\n\nGive a ⭐️ if this project helped you!\n\n## \u003ca id=\"license\"\u003e\u003c/a\u003e 📝 License\n\nCopyright © 2023 [Cristopher Jiménez](https://github.com/cristopher1).\u003cbr /\u003e\nThis project is [MIT](https://github.com/cristopher1/generator-quality-vue3-plugin/blob/master/LICENSE) licensed.\n\n---\n\n_This README was generated with ❤️ by [readme-md-generator](https://github.com/kefranabg/readme-md-generator)_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcristopher1%2Fgenerator-quality-vue3-plugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcristopher1%2Fgenerator-quality-vue3-plugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcristopher1%2Fgenerator-quality-vue3-plugin/lists"}