@dotcom-tool-kit/package-json-hook
v5.0.4
Published
This plugin manages Tool Kit commands that are run from npm scripts, via a Tool Kit [`Hook`](#hooks) that automatically manages `package.json`.
Downloads
2,918
Readme
@dotcom-tool-kit/package-json-hook
This plugin manages Tool Kit commands that are run from npm scripts, via a Tool Kit Hook
that automatically manages package.json
.
Although you can write npm scripts yourself in package.json
, this plugin allows other Tool Kit plugins to define them in a repeatable, modular way. Adding custom scripts via configuring this plugin in your .toolkitrc.yml
means that if a new use case emerges, it's much easier to abstract it into a plugin that can be shared with other Tool Kit users.
Installation
Most repositories won't need to use this plugin directly. It's installed of a dependency of plugins like npm
which configure it with standard use cases.
Install @dotcom-tool-kit/package-json-hook
as a devDependency
in your app:
npm install --save-dev @dotcom-tool-kit/package-json-hook
Add the plugin to your Tool Kit configuration:
plugins:
- '@dotcom-tool-kit/package-json-hook'
And install this plugin's hooks:
npx dotcom-tool-kit --install
Hooks
PackageJson
This hook accepts a nested object with a structure that matches the generated output in package.json
. The values are used as Tool Kit command names to run. You can provide a single command or an array; multiple commands are concatenated in order.
For more complex use cases, you can provide an object instead of a command. The object must contain keys commands
(as above), and trailingString
(which will be appended to the resulting dotcom-tool-kit
CLI invocation). This is useful for tasks that accept a list of files after a trailing --
.
Options provided in your repository's .toolkitrc.yml
for this hook are merged with any Tool Kit plugin that also provides options for the hook.
For example, configuring this hook with the following options:
options:
hooks:
- PackageJson:
scripts:
start: 'run:local'
customScript:
commands:
- custom:one
- custom:two
trailingString: '--'
will result in the following output in package.json
:
{
"scripts": {
"start": "dotcom-tool-kit run:local",
"customScript": "dotcom-tool-kit custom:one custom:two --"
}
}