{"id":21429253,"url":"https://github.com/nystudio107/generator-craftplugin","last_synced_at":"2025-08-21T06:31:08.017Z","repository":{"id":3278607,"uuid":"48939960","full_name":"nystudio107/generator-craftplugin","owner":"nystudio107","description":"generator-craftplugin is a Yeoman generator for Craft CMS plugins","archived":false,"fork":false,"pushed_at":"2022-11-07T17:18:46.000Z","size":526,"stargazers_count":73,"open_issues_count":32,"forks_count":30,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-12-06T03:24:27.132Z","etag":null,"topics":["craft-plugin","craft3","craftcms","yeoman"],"latest_commit_sha":null,"homepage":"","language":"PHP","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/nystudio107.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-01-03T09:03:18.000Z","updated_at":"2024-08-23T20:33:37.000Z","dependencies_parsed_at":"2023-01-13T12:23:50.894Z","dependency_job_id":null,"html_url":"https://github.com/nystudio107/generator-craftplugin","commit_stats":null,"previous_names":[],"tags_count":105,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nystudio107%2Fgenerator-craftplugin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nystudio107%2Fgenerator-craftplugin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nystudio107%2Fgenerator-craftplugin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nystudio107%2Fgenerator-craftplugin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nystudio107","download_url":"https://codeload.github.com/nystudio107/generator-craftplugin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230494921,"owners_count":18235046,"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":["craft-plugin","craft3","craftcms","yeoman"],"created_at":"2024-11-22T22:16:33.241Z","updated_at":"2024-12-19T20:08:29.516Z","avatar_url":"https://github.com/nystudio107.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# generator-craftplugin\n\ngenerator-craftplugin is a [Yeoman](http://yeoman.io) generator for [Craft CMS](http://www.buildwithcraft.com) plugins\n\nType just `yo craftplugin` and a new Craft CMS plugin tailored to your liking will be created.\n\nYou can also access the generator via the web at [pluginfactory.io](http://pluginfactory.io)\n\n## Installation\n\nThis assumes you have `nodejs`, `npm`, and `yeoman` installed already.\n\n1. Download \u0026 unzip the file and place the `generator-craftplugin` directory onto your dev machine\n2.  -OR- do a `git clone https://github.com/nystudio107/generator-craftplugin.git` directly onto your dev machine.  You can then update it with `git pull`\n3. On the command line, from the root of the generator-craftplugin project (in the `generator-craftplugin/` folder), type: `npm link` to install the project dependencies and symlink a global module.  On some setups, you may have to do `sudo npm link --no-bin-links`\n4.  -OR- do an `npm -g install generator-craftplugin` to install it via npm (and thus skip the `npm link` step)\n5. The generator folder should be named `generator-craftplugin`.  GitHub recently started appending `-master` (the branch name) to the name of the folder for zip file downloads.\n\nRequires Node version 8.0.0 or later.\n\n## Usage\n\nTo create a new Craft CMS plugin and use generator-craftplugin to scaffold it:\n\n    yo craftplugin\n\ngenerator-craftplugin will ask you a few questions:\n\n* **Plugin name:** - enter the name of your plugin\n* **Short description of the plugin:** - enter a short (around 120 characters or less) description of the plugin and what it does\n* **Plugin initial version:** - enter the initial version of the plugin, e.g.: `1.0.0` or `0.0.1`\n* **Plugin author name:** - enter the name of the author of the plugin (either an individual or a company)\n* **Plugin author URL:** - enter the URL (with the `http://`) of the website of the plugin author\n* **Plugin author GitHub.com name:** - enter the GitHub.com handle of the author of the plugin.  If you don't have one, just leave it blank\n* **Select what components your plugin will have:** - select the components you want included in your plugin, using the arrow keys to change the component, and `\u003cspace\u003e` to select them.\n\nIf you selected `Controllers`, `ElementTypes`, `FieldTypes`, `Models`, `Purchasables`, `Records`, `Services`, `Tasks`, or `Widgets` components, it will also ask you for a name for each one, respectively.  If you want multiple components, just separate them with a , in the name input.\n\ngenerator-craftplugin will then do the following for you:\n\n1. Create the `pluginname` directory in the current directory, properly lower-cased and stripped of spaces\n2. Create all of the properly named, documented files \u0026 folders for your new Craft CMS plugin\n\nThe code generated conforms to Pixel \u0026 Tonic's [Coding Standards](https://github.com/pixelandtonic/CodingStandards/blob/master/standards/PHP.md), and includes a number of other ancillary files such as `README.md`, `icon.svg`, `releases.json`, etc. to get you going.\n\n### Sample Output\n\nHere's an example of the output from a `yo craftplugin` generator:\n\n```\n[ Initializing ]\n? Select what Craft CMS API to target: (Use arrow keys)\n  Version 2.5.x\n❯ Version 3.0.x\n  Module Version 3.0.x\n[ Prompting ]\n? Plugin name: Some Plugin\n? Short description of the plugin: Some Description\n? Plugin initial version: 1.0.0\n? Plugin author name: Some Author\n? Plugin vendor name: Some Vendor\n? Plugin author URL: https://SomeDomain.com\n? Plugin author GitHub.com name: SomeGithub\n? Should there be code comments generated: (Press \u003cspace\u003e to select, \u003ca\u003e to toggle all, \u003ci\u003e to invers\ne selection)\n❯◉ Code Comments\n? Select what components your plugin will have: (Press \u003cspace\u003e to select, \u003ca\u003e to toggle all, \u003ci\u003e to invers\ne selection)\n❯◉ ConsoleCommands\n ◉ Controllers\n ◉ ElementTypes\n ◉ FieldTypes\n ◉ Models\n ◯ Purchasables\n ◉ Records\n ◉ Services\n ◉ Settings\n ◉ Tasks\n ◉ Tests\n ◉ TwigExtensions\n ◉ Utilities\n ◉ Variables\n ◉ Widgets\n? Name of your ConsoleCommand: Een,Twee,Drie\n? Name of your Controller: One,Two,Three\n? Name of your Element: Neung,Song,Sam\n? Name of your Field: Ichi,Ni,San\n? Name of your Model: Uno,Dos,Tres\n? Name of your Record: Satu,Dua,Tiga\n? Name of your Service: Yi,Er,San\n? Name of your Task: Hana,Dul,Set\n? Name of your Utility: Eins,Zwei,Drei\n? Name of your Widget: Un,Deux,Trois\n[ Configuring ]\n{ pluginName: 'Some Plugin',\n  pluginDescription: 'Some Description',\n  pluginVersion: '1.0.0',\n  pluginAuthorName: 'Some Author',\n  pluginVendorName: 'somevendor',\n  pluginAuthorUrl: 'https://SomeDomain.com',\n  pluginAuthorGithub: 'SomeGithub',\n  codeComments: 'yes',\n  pluginComponents:\n   [ 'controllers',\n     'consolecommands',\n     'elementtypes',\n     'fieldtypes',\n     'models',\n     'records',\n     'services',\n     'settings',\n     'tasks',\n     'tests',\n     'twigextensions',\n     'utilities',\n     'variables',\n     'widgets' ],\n  consolecommandName: [ 'Een', 'Twee', 'Drie' ],\n  controllerName: [ 'One', 'Two', 'Three' ],\n  elementName: [ 'Neung', 'Song', 'Sam' ],\n  fieldName: [ 'Ichi', 'Ni', 'San' ],\n  modelName: [ 'Uno', 'Dos', 'Tres' ],\n  purchasableName: [ '' ],\n  recordName: [ 'Satu', 'Dua', 'Tiga' ],\n  serviceName: [ 'Yi', 'Er', 'San' ],\n  taskName: [ 'Hana', 'Dul', 'Set' ],\n  utilityName: [ 'Eins', 'Zwei', 'Drei' ],\n  widgetName: [ 'Un', 'Deux', 'Trois' ],\n  templatesDir: 'templates',\n  pluginDirName: 'someplugin',\n  pluginCamelHandle: 'somePlugin',\n  pluginHandle: 'SomePlugin',\n  dateNow: '2017-01-22T04:43:17.276Z',\n  niceDate: '2017.01.22',\n  copyrightNotice: 'Copyright (c) 2017 Some Author',\n  pluginDownloadUrl: 'https://github.com/SomeGithub/someplugin/archive/master.zip',\n  pluginDocsUrl: 'https://github.com/SomeGithub/someplugin/blob/master/README.md',\n  pluginReleasesUrl: 'https://raw.githubusercontent.com/SomeGithub/someplugin/master/releases.json',\n  pluginChangelogUrl: 'https://raw.githubusercontent.com/SomeGithub/someplugin/master/CHANGELOG.md',\n  pluginCloneUrl: 'https://github.com/SomeGithub/someplugin.git' }\n+ Creating Craft plugin folder someplugin\n[ Writing ]\n{ pluginName: 'Some Plugin',\n  pluginDescription: 'Some Description',\n  pluginVersion: '1.0.0',\n  pluginAuthorName: 'Some Author',\n  pluginVendorName: 'somevendor',\n  pluginAuthorUrl: 'https://SomeDomain.com',\n  pluginAuthorGithub: 'SomeGithub',\n  codeComments: 'yes',\n  pluginComponents:\n   [ 'controllers',\n     'consolecommands',\n     'elementtypes',\n     'fieldtypes',\n     'models',\n     'records',\n     'services',\n     'settings',\n     'tasks',\n     'tests',\n     'twigextensions',\n     'utilities',\n     'variables',\n     'widgets' ],\n  consolecommandName: [ 'Een', 'Twee', 'Drie' ],\n  controllerName: [ 'One', 'Two', 'Three' ],\n  elementName: [ 'Neung', 'Song', 'Sam' ],\n  fieldName: [ 'Ichi', 'Ni', 'San' ],\n  modelName: [ 'Uno', 'Dos', 'Tres' ],\n  purchasableName: [ '' ],\n  recordName: [ 'Satu', 'Dua', 'Tiga' ],\n  serviceName: [ 'Yi', 'Er', 'San' ],\n  taskName: [ 'Hana', 'Dul', 'Set' ],\n  utilityName: [ 'Eins', 'Zwei', 'Drei' ],\n  widgetName: [ 'Un', 'Deux', 'Trois' ],\n  templatesDir: 'templates',\n  pluginDirName: 'someplugin',\n  pluginCamelHandle: 'somePlugin',\n  pluginHandle: 'SomePlugin',\n  dateNow: '2017-01-22T04:43:17.276Z',\n  niceDate: '2017.01.22',\n  copyrightNotice: 'Copyright (c) 2017 Some Author',\n  pluginDownloadUrl: 'https://github.com/SomeGithub/someplugin/archive/master.zip',\n  pluginDocsUrl: 'https://github.com/SomeGithub/someplugin/blob/master/README.md',\n  pluginReleasesUrl: 'https://raw.githubusercontent.com/SomeGithub/someplugin/master/releases.json',\n  pluginChangelogUrl: 'https://raw.githubusercontent.com/SomeGithub/someplugin/master/CHANGELOG.md',\n  pluginCloneUrl: 'https://github.com/SomeGithub/someplugin.git' }\n\u003e Writing template files\n+ templates/_codeception.yml wrote to someplugin/codeception.yml\n+ templates/tests/ wrote to someplugin/tests/\n+ templates/src/_Plugin.php wrote to someplugin/src/SomePlugin.php\n+ templates/src/models/_Settings.php wrote to someplugin/src/models/Settings.php\n+ templates/_README.md wrote to someplugin/README.md\n+ templates/_CHANGELOG.md wrote to someplugin/CHANGELOG.md\n+ templates/_LICENSE.md wrote to someplugin/LICENSE.md\n+ templates/_composer.json wrote to someplugin/composer.json\n+ templates/src/console/controllers/_Command.php wrote to someplugin/src/console/controllers/EenController.php\n+ templates/src/console/controllers/_Command.php wrote to someplugin/src/console/controllers/TweeController.php\n+ templates/src/console/controllers/_Command.php wrote to someplugin/src/console/controllers/DrieController.php\n+ templates/src/controllers/_Controller.php wrote to someplugin/src/controllers/OneController.php\n+ templates/src/controllers/_Controller.php wrote to someplugin/src/controllers/TwoController.php\n+ templates/src/controllers/_Controller.php wrote to someplugin/src/controllers/ThreeController.php\n+ templates/src/elements/_Element.php wrote to someplugin/src/elements/Neung.php\n+ templates/src/elements/_Element.php wrote to someplugin/src/elements/Song.php\n+ templates/src/elements/_Element.php wrote to someplugin/src/elements/Sam.php\n+ templates/src/fields/_Field.php wrote to someplugin/src/fields/Ichi.php\n+ templates/src/fields/_Field.php wrote to someplugin/src/fields/Ni.php\n+ templates/src/fields/_Field.php wrote to someplugin/src/fields/San.php\n+ templates/src/templates/_components/fields/_input.twig wrote to someplugin/src/templates/_components/fields/Ichi_input.twig\n+ templates/src/templates/_components/fields/_input.twig wrote to someplugin/src/templates/_components/fields/Ni_input.twig\n+ templates/src/templates/_components/fields/_input.twig wrote to someplugin/src/templates/_components/fields/San_input.twig\n+ templates/src/templates/_components/fields/_settings.twig wrote to someplugin/src/templates/_components/fields/Ichi_settings.twig\n+ templates/src/templates/_components/fields/_settings.twig wrote to someplugin/src/templates/_components/fields/Ni_settings.twig\n+ templates/src/templates/_components/fields/_settings.twig wrote to someplugin/src/templates/_components/fields/San_settings.twig\n+ templates/src/resources/css/fields/_field.css wrote to someplugin/src/resources/css/fields/Ichi_field.css\n+ templates/src/resources/css/fields/_field.css wrote to someplugin/src/resources/css/fields/Ni_field.css\n+ templates/src/resources/css/fields/_field.css wrote to someplugin/src/resources/css/fields/San_field.css\n+ templates/src/resources/js/fields/_field.js wrote to someplugin/src/resources/js/fields/Ichi_field.js\n+ templates/src/resources/js/fields/_field.js wrote to someplugin/src/resources/js/fields/Ni_field.js\n+ templates/src/resources/js/fields/_field.js wrote to someplugin/src/resources/js/fields/San_field.js\n+ templates/src/models/_Model.php wrote to someplugin/src/models/Uno.php\n+ templates/src/models/_Model.php wrote to someplugin/src/models/Dos.php\n+ templates/src/models/_Model.php wrote to someplugin/src/models/Tres.php\n+ templates/src/records/_Record.php wrote to someplugin/src/records/Satu.php\n+ templates/src/records/_Record.php wrote to someplugin/src/records/Dua.php\n+ templates/src/records/_Record.php wrote to someplugin/src/records/Tiga.php\n+ templates/src/migrations/_Install.php wrote to someplugin/src/migrations/Install.php\n+ templates/src/services/_Service.php wrote to someplugin/src/services/Yi.php\n+ templates/src/services/_Service.php wrote to someplugin/src/services/Er.php\n+ templates/src/services/_Service.php wrote to someplugin/src/services/San.php\n+ templates/src/tasks/_Task.php wrote to someplugin/src/tasks/Hana.php\n+ templates/src/tasks/_Task.php wrote to someplugin/src/tasks/Dul.php\n+ templates/src/tasks/_Task.php wrote to someplugin/src/tasks/Set.php\n+ templates/src/utilities/_Utility.php wrote to someplugin/src/utilities/Eins.php\n+ templates/src/utilities/_Utility.php wrote to someplugin/src/utilities/Zwei.php\n+ templates/src/utilities/_Utility.php wrote to someplugin/src/utilities/Drei.php\n+ templates/src/templates/_components/utilities/_content.twig wrote to someplugin/src/templates/_components/utilities/Eins_content.twig\n+ templates/src/templates/_components/utilities/_content.twig wrote to someplugin/src/templates/_components/utilities/Zwei_content.twig\n+ templates/src/templates/_components/utilities/_content.twig wrote to someplugin/src/templates/_components/utilities/Drei_content.twig\n+ templates/src/resources/css/utilities/_utility.css wrote to someplugin/src/resources/css/utilities/Eins.css\n+ templates/src/resources/css/utilities/_utility.css wrote to someplugin/src/resources/css/utilities/Zwei.css\n+ templates/src/resources/css/utilities/_utility.css wrote to someplugin/src/resources/css/utilities/Drei.css\n+ templates/src/resources/js/utilities/_utility.js wrote to someplugin/src/resources/js/utilities/Eins.js\n+ templates/src/resources/js/utilities/_utility.js wrote to someplugin/src/resources/js/utilities/Zwei.js\n+ templates/src/resources/js/utilities/_utility.js wrote to someplugin/src/resources/js/utilities/Drei.js\n+ templates/src/widgets/_Widget.php wrote to someplugin/src/widgets/Un.php\n+ templates/src/widgets/_Widget.php wrote to someplugin/src/widgets/Deux.php\n+ templates/src/widgets/_Widget.php wrote to someplugin/src/widgets/Trois.php\n+ templates/src/templates/_components/widgets/_body.twig wrote to someplugin/src/templates/_components/widgets/Un_body.twig\n+ templates/src/templates/_components/widgets/_body.twig wrote to someplugin/src/templates/_components/widgets/Deux_body.twig\n+ templates/src/templates/_components/widgets/_body.twig wrote to someplugin/src/templates/_components/widgets/Trois_body.twig\n+ templates/src/templates/_components/widgets/_settings.twig wrote to someplugin/src/templates/_components/widgets/Un_settings.twig\n+ templates/src/templates/_components/widgets/_settings.twig wrote to someplugin/src/templates/_components/widgets/Deux_settings.twig\n+ templates/src/templates/_components/widgets/_settings.twig wrote to someplugin/src/templates/_components/widgets/Trois_settings.twig\n+ templates/src/resources/css/widgets/_widget.css wrote to someplugin/src/resources/css/widgets/Un.css\n+ templates/src/resources/css/widgets/_widget.css wrote to someplugin/src/resources/css/widgets/Deux.css\n+ templates/src/resources/css/widgets/_widget.css wrote to someplugin/src/resources/css/widgets/Trois.css\n+ templates/src/resources/js/widgets/_widget.js wrote to someplugin/src/resources/js/widgets/Un.js\n+ templates/src/resources/js/widgets/_widget.js wrote to someplugin/src/resources/js/widgets/Deux.js\n+ templates/src/resources/js/widgets/_widget.js wrote to someplugin/src/resources/js/widgets/Trois.js\n+ templates/src/templates/_settings.twig wrote to someplugin/src/templates/settings.twig\n+ templates/src/translations/_en.php wrote to someplugin/src/translations/en/someplugin.php\n+ templates/src/twigextensions/_TwigExtension.php wrote to someplugin/src/twigextensions/SomePluginTwigExtension.php\n+ templates/src/variables/_Variable.php wrote to someplugin/src/variables/SomePluginVariable.php\n+ templates/src/resources/css/_style.css wrote to someplugin/src/resources/css/SomePlugin.css\n+ templates/src/resources/js/_script.js wrote to someplugin/src/resources/js/SomePlugin.js\n\u003e Copying boilerplate files\n+ templates/src/icon-mask.svg copied to someplugin/src/icon-mask.svg\n+ templates/src/icon.svg copied to someplugin/src/icon.svg\n+ templates/src/resources/images/plugin.png copied to someplugin/src/resources/images/plugin.png\n+ templates/src/resources/screenshots/plugin_logo.png copied to someplugin/src/resources/screenshots/plugin_logo.png\n\u003e Sync to file system\n   create someplugin/codeception.yml\n   create someplugin/tests/_bootstrap.php\n   create someplugin/tests/_craft/config/db.php\n   create someplugin/tests/_craft/config/general.php\n   create someplugin/tests/_craft/config/routes.php\n   create someplugin/tests/_craft/config/test.php\n   create someplugin/tests/_craft/storage/example-file.txt\n   create someplugin/tests/_craft/templates/example.twig\n   create someplugin/tests/_support/FunctionalTester.php\n   create someplugin/tests/_support/Helper/Functional.php\n   create someplugin/tests/_support/Helper/Unit.php\n   create someplugin/tests/_support/UnitTester.php\n   create someplugin/tests/example-env\n   create someplugin/tests/functional.suite.yml\n   create someplugin/tests/functional/_bootstrap.php\n   create someplugin/tests/functional/ExampleFunctionalCest.php\n   create someplugin/tests/unit.suite.yml\n   create someplugin/tests/unit/_bootstrap.php\n   create someplugin/tests/unit/ExampleUnitTest.php\n   create someplugin/src/SomePlugin.php\n   create someplugin/src/models/Settings.php\n   create someplugin/README.md\n   create someplugin/CHANGELOG.md\n   create someplugin/LICENSE.md\n   create someplugin/composer.json\n   create someplugin/src/console/controllers/EenController.php\n   create someplugin/src/console/controllers/TweeController.php\n   create someplugin/src/console/controllers/DrieController.php\n   create someplugin/src/controllers/OneController.php\n   create someplugin/src/controllers/TwoController.php\n   create someplugin/src/controllers/ThreeController.php\n   create someplugin/src/elements/Neung.php\n   create someplugin/src/elements/Song.php\n   create someplugin/src/elements/Sam.php\n   create someplugin/src/fields/Ichi.php\n   create someplugin/src/fields/Ni.php\n   create someplugin/src/fields/San.php\n   create someplugin/src/templates/_components/fields/Ichi_input.twig\n   create someplugin/src/templates/_components/fields/Ni_input.twig\n   create someplugin/src/templates/_components/fields/San_input.twig\n   create someplugin/src/templates/_components/fields/Ichi_settings.twig\n   create someplugin/src/templates/_components/fields/Ni_settings.twig\n   create someplugin/src/templates/_components/fields/San_settings.twig\n   create someplugin/src/resources/css/fields/Ichi_field.css\n   create someplugin/src/resources/css/fields/Ni_field.css\n   create someplugin/src/resources/css/fields/San_field.css\n   create someplugin/src/resources/js/fields/Ichi_field.js\n   create someplugin/src/resources/js/fields/Ni_field.js\n   create someplugin/src/resources/js/fields/San_field.js\n   create someplugin/src/models/Uno.php\n   create someplugin/src/models/Dos.php\n   create someplugin/src/models/Tres.php\n   create someplugin/src/records/Satu.php\n   create someplugin/src/records/Dua.php\n   create someplugin/src/records/Tiga.php\n   create someplugin/src/migrations/Install.php\n   create someplugin/src/services/Yi.php\n   create someplugin/src/services/Er.php\n   create someplugin/src/services/San.php\n   create someplugin/src/tasks/Hana.php\n   create someplugin/src/tasks/Dul.php\n   create someplugin/src/tasks/Set.php\n   create someplugin/src/utilities/Eins.php\n   create someplugin/src/utilities/Zwei.php\n   create someplugin/src/utilities/Drei.php\n   create someplugin/src/templates/_components/utilities/Eins_content.twig\n   create someplugin/src/templates/_components/utilities/Zwei_content.twig\n   create someplugin/src/templates/_components/utilities/Drei_content.twig\n   create someplugin/src/resources/css/utilities/Eins.css\n   create someplugin/src/resources/css/utilities/Zwei.css\n   create someplugin/src/resources/css/utilities/Drei.css\n   create someplugin/src/resources/js/utilities/Eins.js\n   create someplugin/src/resources/js/utilities/Zwei.js\n   create someplugin/src/resources/js/utilities/Drei.js\n   create someplugin/src/widgets/Un.php\n   create someplugin/src/widgets/Deux.php\n   create someplugin/src/widgets/Trois.php\n   create someplugin/src/templates/_components/widgets/Un_body.twig\n   create someplugin/src/templates/_components/widgets/Deux_body.twig\n   create someplugin/src/templates/_components/widgets/Trois_body.twig\n   create someplugin/src/templates/_components/widgets/Un_settings.twig\n   create someplugin/src/templates/_components/widgets/Deux_settings.twig\n   create someplugin/src/templates/_components/widgets/Trois_settings.twig\n   create someplugin/src/resources/css/widgets/Un.css\n   create someplugin/src/resources/css/widgets/Deux.css\n   create someplugin/src/resources/css/widgets/Trois.css\n   create someplugin/src/resources/js/widgets/Un.js\n   create someplugin/src/resources/js/widgets/Deux.js\n   create someplugin/src/resources/js/widgets/Trois.js\n   create someplugin/src/templates/settings.twig\n   create someplugin/src/translations/en/someplugin.php\n   create someplugin/src/twigextensions/SomePluginTwigExtension.php\n   create someplugin/src/variables/SomePluginVariable.php\n   create someplugin/src/resources/css/SomePlugin.css\n   create someplugin/src/resources/js/SomePlugin.js\n   create someplugin/src/icon-mask.svg\n   create someplugin/src/icon.svg\n   create someplugin/src/resources/images/plugin.png\n   create someplugin/src/resources/screenshots/plugin_logo.png\n[ Install ]\n[ End ]\n\u003e End install commands\n+ Fin. executed\nYour Craft CMS plugin SomePlugin has been created.\nThe default LICENSE.txt is the MIT license; feel free to change it as you see fit.\n\u003e All set.  Have a nice day.\n```\n\n## Command line options\n\nThe `craftplugin` generator can also be passed arguments via the command line, bypassing the interactive prompts.  So it's possible do do something like this:\n\n    yo craftplugin --pluginComponents=\"controllers,consolecommands,elementtypes,fieldtypes,models,records,services,settings,tasks,tests,twigextensions,utilities,variables,widgets\" --apiVersion=\"api_version_3_0\" --pluginName=\"Some Plugin\" --pluginDescription=\"Some Description\" --pluginVersion=\"1.0.0\" --pluginVendorName=\"Some Vendor\" --pluginAuthorName=\"Some Author\" --pluginAuthorUrl=\"https://SomeDomain.com\" --pluginAuthorGithub=\"SomeGithub\" --codeComments=\"yes\" --consolecommandName=\"Een,Twee,Drie\" --controllerName=\"One,Two,Three\" --elementName=\"Neung,Song,Sam\" --fieldName=\"Ichi,Ni,San\" --modelName=\"Uno,Dos,Tres\" --purchasableName=\"\" --recordName=\"Satu,Dua,Tiga\" --serviceName=\"Yi,Er,San\" --utilityName=\"Eins,Zwei,Drei\" --taskName=\"Hana,Dul,Set\" --widgetName=\"Un,Deux,Trois\"\n\n## Adding to an existing plugin\n\nAs of version 1.3.0, the `generator-craftplugin` creates a `.craftplugin` project file in your plugin's root folder that contains all of the information needed to create the plugin scaffolding. If you have Yeoman and the `generator-craftplugin` installed locally, you can then `cd` to the directory and add components as you see fit.\n\nHere's a video showing how that works:\n\n[![Adding to an existing plugin video](https://img.youtube.com/vi/K-PwDHS76So/0.jpg)](https://youtu.be/K-PwDHS76So)\n\nSo to add a controller to a project that already has `controllers` we can just do:\n\n    yo craftplugin --controllerName=\"woofer\"\n\nIf we're adding a new component type that doesn't exist in the plugin yet, we can just do:\n\n    yo craftplugin --consolecommandName=\"woofer\" --pluginComponents=\"consolecommands\"\n\nHere's a list of the `pluginComponents`; if you want to add more than one, just use a comma separated list, e.g.: `--pluginComponents=\"controllers,consolecommands\"`:\n\n    controllers\n    consolecommands\n    elementtypes\n    fieldtypes\n    models\n    records\n    services\n    settings\n    tasks\n    tests\n    twigextensions\n    utilities\n    variables\n    widgets\n\nHere's a list of the parameters you can pass in to name the various components; if you want to add more than one, just use a comma separated list, e.g.: `--controllerName=\"One,Two,Three\"`:\n\n    --consolecommandName=\"\"\n    --controllerName=\"\"\n    --elementName=\"\"\n    --fieldName=\"\"\n    --modelName=\"\"\n    --purchasableName=\"\"\n    --recordName=\"\"\n    --serviceName=\"\"\n    --utilityName=\"\"\n    --taskName=\"\"\n    --widgetName=\"\"\n\nHere's a list of meta parameters that you can also pass in, to override what is in the `.craftplugin` file:\n\n    --apiVersion=\"\"\n    --pluginName=\"\"\n    --pluginDescription=\"\"\n    --pluginVersion=\"\"\n    --pluginVendorName=\"\"\n    --pluginAuthorName=\"\"\n    --pluginAuthorUrl=\"\"\n    --pluginAuthorGithub=\"\"\n    --codeComments=\"\"\n\nBrought to you by [nystudio107](http://nystudio107.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnystudio107%2Fgenerator-craftplugin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnystudio107%2Fgenerator-craftplugin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnystudio107%2Fgenerator-craftplugin/lists"}