open-index/open-npm huggingface dataset:
npm package: @pmnps/plugin-clean-node-modules
Description: This is a pmnps plugin for cleaning node_modules in packages when the pkg manager is changed.
Author: Jimmy.Harding
Latest version: 4.5.0

# @pmnps/plugin-clean-node-modules

The monorepo manage tool [pmnps](https://www.npmjs.com/package/pmnps) watches changes of `package.json` files for building a useful monorepo package workspaces. This plugin helps it to clean `node_modules` folders in project, when the pkg manager field `core` is changed. 

## Usage

Config the `.pmnpsrc.json`:

```
{
    ...,
    "plugins":[
        "@pmnps/plugin-clean-node-modules"
    ]
}
```
npm package: @pmnps/plugin-dependencies
Description: This is a dependencies analyze plugin for pmnps
Author: Jimmy.Harding
Latest version: 3.1.1
Deprecated: @pmnps/plugin-dependencies is no used

# @pmnps/plugin-dependencies

This plugin works in the pmnps command: 'refresh', 'start', 'build'. It can analyze the packages dependencies, and detects if there are some loop dependencies.
npm package: @pmnps/plugin-fork
Description: This is a pmnps plugin for forking a package out to replace the node_modules one.
Author: Jimmy.Harding
Latest version: 4.5.0

# @pmnps/plugin-fork

This is a plugin package for [pmnps](https://github.com/pmnps/pmnps). It can fork a node_modules package to workspace, so you can replace it easily.

## Config

```
// .pmnpsrc
{
  ...
  "plugins": [
    "@pmnps/plugin-fork",
    ......
  ],
}
```

## Usage

```
# npx pmnps fork node_modules/{{packageName}}
# npx pmnps fork platforms/{{platformName}}/node_modules/{{packageName}}
```

Note: the path you provide to fork command should be exist in node_modules.
npm package: @pmnps/plugin-publish
Description: This is a pmnps plugin for publishing npm packages.
Author: Jimmy.Harding
Latest version: 4.5.0

# @pmnps/plugin-publish

This is a plugin for [pmnps](https://github.com/pmnps/pmnps) to publish packages to npm registry.

From pmnps@4.0.0, command `pmnps publish` is removed. With this plugin, you can use this command again.

## Usage

Config the `.pmnpsrc.json`:

```
{
    ...,
    "plugins":[
        "@pmnps/plugin-publish"
    ]
}
```

If you want to exclude the folders which you don't want to show in vscode workspace, use `query` config:

```
{
    ...,
    "plugins":[
        [
            "@pmnps/plugin-publish",
            {
                "registry":"https://registry.npmjs.org"
            }
        ]
    ]
}
```
npm package: @pmnps/plugin-react
Description: This is a pmnps plugin to complete react project creation
Author: Jimmy.Harding
Latest version: 3.1.3

# @pmnps/plugin-react

This plugin works in the pmnps command: 'create', it requires the version of react, react-dom, @types/react, @types/react-dom. And it is a optional plugin. It can complete the react setting for your creating package or platform.
npm package: @pmnps/plugin-refresh-package-lock
Description: This is a pmnps plugin for refreshing package-lock.json file.
Author: Jimmy.Harding
Latest version: 4.3.0
Deprecated: @pmnps/plugin-refresh-package-lock is replaced by @pmnps/lock-resolver, it is not optional

# @pmnps/plugin-refresh-package-lock

The monorepo manage tool [pmnps](https://www.npmjs.com/package/pmnps) watches changes of `package.json` files for building a useful monorepo package workspaces. It handles the `lock` file process out to plugins. This pmnps plugin can refresh `package-lock.json` files when `pmnps refresh` is running. 

## Usage

Config the `.pmnpsrc.json`:

```
{
    ...,
    "plugins":[
        "@pmnps/plugin-refresh-package-lock"
    ]
}
```

It refreshes `package-lock.json` file by using `lockfileVersion: 2`, If you are using another `lockfileVersion`, use `query` config to point it out:

```
{
    ...,
    "plugins":[
        [
            "@pmnps/plugin-refresh-package-lock",
            {
                "lockfileVersion": 2
            }
        ]
    ]
}
```

**Note: This plugin supports `lockfileVersion>=2`, so it can not refresh  package-lock.json file with `lockfileVersion: 1` currently.**
npm package: @pmnps/plugin-typescript
Description: This is a typescript build plugin for pmnps
Author: Jimmy.Harding
Latest version: 3.1.2
Deprecated: @pmnps/plugin-typescript is no used

# @pmnps/plugin-typescript

This plugin works in the [pmnps](https://www.npmjs.com/package/pmnps) command: 'create', it requires the version of typescript, and it is a optional plugin. It can complete the typescript setting for your creating package or platform.

## Usage

Config the `.pmnpsrc.json`:

```
{
    ...,
    "plugins":[
        "@pmnps/plugin-typescript"
    ]
}
```

If you want to link `package.json > typings` property to `./src/index.ts`, use `query` config:

```
{
    ...,
    "plugins":[
        [
            "@pmnps/plugin-typescript",
            {
                "noDefineTypings":true
            }
        ]
    ]
}
```

It can help you import local package dependencies without `.d.ts` declare file when the `index.ts` of package is in a `package.src` dir.
npm package: @pmnps/plugin-vscode-workspace
Description: This is a pmnps plugin for refreshing vscode-workspace file.
Author: Jimmy.Harding
Latest version: 4.5.0

# @pmnps/plugin-vscode-workspace

You might be troubled by the problem about `can not find tsconfig` in projects, when using [pmnps](https://www.npmjs.com/package/pmnps). 
This plugin will run in refresh command, it creates a `.code-workspace` file, so, we can use [pmnps](https://www.npmjs.com/package/pmnps) more better in vscode, and resolve the `can not find tsconfig` problem.

If you are not familiy with `vscode multi workspace`, please take this [reference](https://code.visualstudio.com/docs/editor/multi-root-workspaces).

## Usage

Config the `.pmnpsrc.json`:

```
{
    ...,
    "plugins":[
        "@pmnps/plugin-vscode-workspace"
    ]
}
```

If you want to exclude the folders which you don't want to show in vscode workspace, use `query` config:

```
{
    ...,
    "plugins":[
        [
            "@pmnps/plugin-vscode-workspace",
            {
                "excludes":["root","packages/@template"]
            }
        ]
    ]
}
```
npm package: @pmnps/tools
Description: These are tools for developing pmnps and its plugins
Author: Jimmy.Harding
Latest version: 4.5.0

# @pmnps/tools

This package provides some tools for writing plugins for [pmnps](https://www.npmjs.com/package/pmnps).

## API

### message

You can use this api to log what happens in your plugin.

```typescript
declare type Message = {
  error(message: string): void;
  info(message: string): void;
  log(message: string): void;
  success(message: string): void;
  desc(message: string): void;
  warn(message: string): void;
};

export declare const message: Message;
```

### execution

This API helps to manage the executions.

```typescript
import type execa from 'execa';

export declare const execution: {
  exec(
    file: string,
    params?: string[] | execa.Options,
    options?: execa.Options
  ): execa.ExecaChildProcess;
  command(params: string, options?: execa.Options): execa.ExecaChildProcess;
  execute: typeof execa;
  killChildProcess([pid, process]: [number, execa.ExecaChildProcess]): void;
};
```

### createPluginCommand

This API helps to create a plugin command.

```typescript
declare type PluginSlot = {
  name: string;
  option(
    optionName: string,
    shortcut: string,
    optional?: { description?: string; inputType?: 'string' | 'boolean' }
  ): PluginSlot;
  describe(description: string): PluginSlot;
  require(requireFn: RequireFn): PluginSlot;
  action(action: Action): Command;
};

export declare function createPluginCommand(name: string): PluginSlot;
```

### inquirer

This API helps to create a prompt for the user.

```typescript
import type { Answers, QuestionCollection, ui, Separator } from 'inquirer';

declare function prompt<T extends Answers = Answers>(
  questions: QuestionCollection<T>,
  initialAnswers?: Partial<T>
): Promise<T> & { ui: ui.Prompt<T> };

export declare const inquirer: {
  prompt: typeof prompt;
  Separator: typeof Separator;
};
```