mirror of
https://github.com/vuejs/vue-cli.git
synced 2026-01-12 01:59:42 -06:00
* feat(GeneratorAPI): accept multiple arguments for the resolve method
To make its signature conform to the standard `path.resolve`, avoid
confusions.
There's already a bug in the downstream plugin that was caused by such
confusion: a742953b83/generator/index.js (L163-L171)
* docs: update descriptions of the `resolve` api [ci skip]
183 lines
4.5 KiB
Markdown
183 lines
4.5 KiB
Markdown
# Generator API
|
|
|
|
## cliVersion
|
|
|
|
Type: `string`
|
|
|
|
The version string for the **global** `@vue/cli` version that is invoking the plugin.
|
|
|
|
|
|
## assertCliVersion
|
|
|
|
- **Arguments**
|
|
- `{integer | string} range` - a semver range that `@vue/cli` needs to satisfy
|
|
|
|
- **Usage**
|
|
|
|
While api.version can be useful in general, it's sometimes nice to just declare your version.
|
|
This API exposes a simple way to do that.
|
|
|
|
Nothing happens if the provided version is satisfied. Otherwise, an error will be thrown.
|
|
|
|
|
|
## cliServiceVersion
|
|
|
|
Type: `string`
|
|
|
|
The version string for the **project local** `@vue/cli-service` version that is invoking the plugin.
|
|
|
|
|
|
## assertCliServiceVersion
|
|
|
|
- **Arguments**
|
|
- `{integer | string} range` - a semver range that `@vue/cli-service` needs to satisfy
|
|
|
|
- **Usage**
|
|
|
|
This API exposes a simple way to declare the required project local `@vue/cli-service` version.
|
|
|
|
Nothing happens if the provided version is satisfied. Otherwise, an error will be thrown.
|
|
|
|
Note: It's recommended to use [the `peerDependencies` field in `package.json`](https://docs.npmjs.com/files/package.json#peerdependencies) under most circumstances.
|
|
|
|
|
|
## resolve
|
|
|
|
- **Arguments**
|
|
- `{string} ..._paths` - A sequence of relative paths or path segments
|
|
|
|
- **Returns**
|
|
- `{string}`- the resolved absolute path, caculated based on the current project root
|
|
|
|
- **Usage**:
|
|
Resolve a path for the current project
|
|
|
|
## hasPlugin
|
|
|
|
- **Arguments**
|
|
- `{string} id` - plugin id, can omit the (@vue/|vue-|@scope/vue)-cli-plugin- prefix
|
|
- `{string} version` - semver version range, optional
|
|
|
|
- **Returns**
|
|
- `{boolean}`
|
|
|
|
- **Usage**:
|
|
Check if the project has a plugin with given id. If version range is given, then the plugin version should satisfy it
|
|
|
|
## 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
|
|
{
|
|
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
|
|
|
|
## makeJSOnlyValue
|
|
|
|
- **Arguments**
|
|
- `{any} str` - JS expression as a string
|
|
|
|
- **Usage**:
|
|
Turns a string expression into executable JS for .js config files
|
|
|
|
## 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.
|