Files
vue-cli/docs/dev-guide/generator-api.md
Natalia Tepluhina 4b2a11e552 docs: Plugin development guide (#2973)
* feat(docs): add Heroku deployment section

* fix: rename remote repository section title

* fix(docs): add a middleware for handling vue-router in deployed app

* fix(docs): fixed formatting

* feat: Create structure for Plugin and Generator API; create Getting started and Modifying webpack config chapters

* feat: started registerCommand description

* feat: Add a description for adding new vue-cli-service command

* fix: Change the part about modifying existing vue-cli-service commands

* feat: Add local installation steps for cli-plugin with/without Vue UI

* feat: Add generator extending package and changing main file chapters

* feat: Create structure for Plugin and Generator API; create Getting started and Modifying webpack config chapters

* feat: started registerCommand description

* feat: Add a description for adding new vue-cli-service command

* fix: Change the part about modifying existing vue-cli-service commands

* feat: Add local installation steps for cli-plugin with/without Vue UI

* feat: Add generator extending package and changing main file chapters

* feat: Add templating part to vue-cli-plugin Generator docs

* feat: described prompts

* fix: fixed condition on template rendering in generator

* fix: changed Getting Started part

* fix: Added links to Generator and Prompts chapters; fixed a description for testing a plugin locally

* fix: reverted changed to Heroku deployment

* fix: restored Surge chapter

* fix: deleted unused image

* fix: changed an order of chapters; added description for Generator part

* Update docs/dev-guide/plugin-dev.md

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: rewrote the Generator part

* feat: add description for extending a package with new command

* fix: fixed service plugin description and links

* fix: fixed links and typos, added prompt API

* feat: UI description and augmenting task in the UI

* feat: added a description for configuration screen in UI

* feat: add configuration files description

* feat: add save config description

* feat: add prompts-in-UI description

* feat: added logo and discoverability sections

* feat: add publish plugin to npm section

* feat: stated plugin API reference

* fix: fixed typo in quote

* feat: Plugin API reference ready

* fix: removed examples

* feat: add Generator API reference

* fix: fixed typo in prompt

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: remove underscore in `_path` parameter

* Update docs/dev-guide/plugin-dev.md

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: add export to the templating example

* fix: change preposition

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: add missing `{`

* Update docs/dev-guide/plugin-dev.md

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: specified that package.json should be user's one

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: add dot

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: add dot

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: missing bracket

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: add dot

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: add dot

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: add dot

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: add colon

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: add semicolon

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: add semicolon

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: add semicolon

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: typo in `it's` vs `its`

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* feat: add more places for logo to display

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: add vue add option to invocation

Co-Authored-By: NataliaTepluhina <NataliaTepluhina@users.noreply.github.com>

* fix: add fe missed brackets and moved filename section

* fix: fix indentations and remove OPTIONS constant

* fix: fix indentation and wrap built-in plugin description with a tip

* fix: add link to Public static files

* fix: change the description for UI prompts properties

* fix: add `@scope/vue-cli-plugin-<name>` option

* fix: code style fixes

* fix: change config id to follow reverse domain name notation

* fix: style fixes

* feat: add more comments with file names

* docs: fixes

* docs: removed built-it plugins prompts part
2019-01-25 09:42:12 +01:00

3.1 KiB

Generator API

resolve

  • Arguments

    • {string} _path - relative path from project root
  • Returns

    • {string}- the resolved absolute path
  • Usage: Resolve a path for the current project

hasPlugin

  • Arguments

    • {string} id - plugin id, can omit the (@vue/|vue-|@scope/vue)-cli-plugin- prefix
  • Returns

    • {boolean}
  • Usage: Check if the project has a plugin with given id

addConfigTransform

  • Arguments

    • {string} key - config key in package.json
    • {object} options - options
    • {object} options.file - file descriptor. Used to search for existing file. Each key is a file type (possible values: ['js', 'json', 'yaml', 'lines']). The value is a list of filenames. Example:
    {
      js: ['.eslintrc.js'],
      json: ['.eslintrc.json', '.eslintrc']
    }
    

    By default, the first filename will be used to create the config file.

  • Returns

    • {boolean}
  • Usage: Configure how config files are extracted.

extendPackage

  • Arguments

    • {object | () => object} fields - fields to merge
  • Usage: Extend the package.json of the project. Nested fields are deep-merged unless { merge: false } is passed. Also resolves dependency conflicts between plugins. Tool configuration fields may be extracted into standalone files before files are written to disk.

render

  • Arguments

    • {string | object | FileMiddleware} source - can be one of
      • relative path to a directory;
      • object hash of { sourceTemplate: targetFile } mappings;
      • a custom file middleware function
    • {object} [additionalData] - additional data available to templates
    • {object} [ejsOptions] - options for ejs
  • Usage: Render template files into the virtual files tree object.

postProcessFiles

  • Arguments

    • {FileMiddleware} cb - file middleware
  • Usage: Push a file middleware that will be applied after all normal file middlewares have been applied.

onCreateComplete

  • Arguments

    • {function} cb
  • Usage: Push a callback to be called when the files have been written to disk.

exitLog

  • Arguments

    • {} msg - string or value to print after the generation is completed;
    • {('log'|'info'|'done'|'warn'|'error')} [type='log'] - type of the message.
  • Usage: Add a message to be printed when the generator exits (after any other standard messages).

genJSConfig

  • Arguments

    • {any} value
  • Usage: Convenience method for generating a JS config file from JSON

injectImports

  • Arguments

    • {string} file - target file to add imports
    • {string | [string]} imports - imports string/array
  • Usage: Add import statements to a file.

injectRootOptions

  • Arguments

    • {string} file - target file to add options
    • {string | [string]} options - options string/array
  • Usage: Add options to the root Vue instance (detected by new Vue).

entryFile

  • Returns

    • {('src/main.ts'|'src/main.js')}
  • Usage: Get the entry file taking into account typescript.

invoking

  • Returns

    • {boolean}
  • Usage: Checks if the plugin is being invoked.