# @kkt/scope-plugin-options

> This will modify the CRA ModuleScopePlugin plugin that prevents to import modules from outside the `src` directory.

Latest version **7.5.5** (published 2024-01-04) · MIT license · 0 weekly downloads

## Install

```sh
npm install @kkt/scope-plugin-options
pnpm add @kkt/scope-plugin-options
yarn add @kkt/scope-plugin-options
bun add @kkt/scope-plugin-options
```

## Health

**Score 40/100 (D)** — status: abandoned.

Positive: has types; no vulnerabilities; has provenance; high maintenance score.

Warnings: low downloads; no esm support.

Negative: abandoned.

## Facts

| | |
|---|---|
| Version | 7.5.5 |
| Published | 2024-01-04 |
| First published | 2020-12-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 6.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 51 |
| Author | Kenny Wong |
| Maintainers | uiwjs, wcjiang |
| Keywords | kkt, react, framework |

## Links

- npm: https://www.npmjs.com/package/@kkt/scope-plugin-options
- Repository: https://github.com/kktjs/kkt
- Homepage: https://github.com/kktjs/kkt#readme
- Issues: https://github.com/kktjs/kkt/issues
- npm.io page: https://npm.io/package/@kkt/scope-plugin-options

## Alternatives

- [mobx-react](https://npm.io/package/mobx-react.md) — 2.8M weekly downloads
- [rc-tree](https://npm.io/package/rc-tree.md) — 2.6M weekly downloads
- [@react-oauth/google](https://npm.io/package/@react-oauth/google.md) — 1.3M weekly downloads
- [@wagmi/connectors](https://npm.io/package/@wagmi/connectors.md) — 877.0K weekly downloads
- [vee-validate](https://npm.io/package/vee-validate.md) — 836.4K weekly downloads

## Recent versions

- 7.5.5 (latest) — 2024-01-04
- 7.5.4 — 2023-10-14
- 7.5.3 — 2023-09-25
- 7.5.2 — 2023-06-24
- 7.5.1 — 2023-06-12
- 7.5.0 — 2023-06-02
- 7.4.17 — 2023-05-28
- 7.4.16 — 2023-05-28
- 7.4.15 — 2023-05-28
- 7.4.14 — 2023-05-28
- 7.4.13 — 2023-05-27
- 7.4.12 — 2023-05-27
- 7.4.11 — 2023-05-27
- 7.4.10 — 2023-05-27
- 7.4.9 — 2023-03-08
- … 66 more at https://npm.io/package/@kkt/scope-plugin-options/versions

## README

<p align="center">
  <h1>@kkt/scope-plugin-options</h1>
</p>

<p align="center">
  <a href="https://www.npmjs.com/package/@kkt/scope-plugin-options">
    <img src="https://img.shields.io/npm/v/@kkt/scope-plugin-options.svg" alt="npm version">
  </a>
</p>

This will modify the CRA ModuleScopePlugin plugin that prevents to import modules from outside the `src` directory, useful if you use a different directory.

This is the setting for the Plug-in `new ModuleScopePlugin`.

Prevents users from importing files from outside of src/ (or node_modules/). This often causes confusion because we only process files within src/ with babel. To fix this, we prevent you from importing files out of src/ -- if you'd like to, please link the files into your node_modules/ and let module-resolution kick in. Make sure your source files are compiled, as they will not be processed in any way.
 
### Installation

```bash
yarn add --dev @kkt/scope-plugin-options
# or use npm if you don't have yarn yet
npm install --save-dev @kkt/scope-plugin-options
```

### Usage

In the `.kktrc.js` or `.kktrc.ts` you created for `kkt` add this code:

```js
import path from 'path';
import scopePluginOptions from '@kkt/scope-plugin-options';

export default (conf, evn, options) => {
  return scopePluginOptions(conf, evn, {
    allowedFiles: [
      path.resolve(process.cwd(), 'README.md')
    ]
  });
}
```

In `package.json`, add a separate npm script to build library

```js
{
  "scripts": {
    ...
    "build": "kkt build",
    "start": "kkt start",
    ...
  }
}
```

And you can now use CRA to build your library

### Configurations

```js
import path from 'path';
import scopePluginOptions from '@kkt/scope-plugin-options';

export default (conf, evn, options) => {
  return scopePluginOptions(conf, evn, false);
}
```

Disable scopePlugin

```js
import path from 'path';
import { disableScopePlugin } from '@kkt/scope-plugin-options';

export default (conf, evn, options) => {
  return disableScopePlugin(conf);
}
```

### API

```ts
import { Configuration } from 'webpack';
import { LoaderConfOptions } from 'kkt';
export declare type ReactLibraryOptions = LoaderConfOptions & {
  allowedFiles?: ReadonlyArray<string>;
  allowedPaths?: ReadonlyArray<string>;
  appSrcs?: string | ReadonlyArray<string>;
};
export declare function disableScopePlugin(conf: Configuration): Configuration;
export default function scopePluginOptions(conf: Configuration, env: string, options: ReactLibraryOptions): Configuration;
```

### License

Licensed under the MIT License

---
_Source: https://npm.io/package/@kkt/scope-plugin-options · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
