@kkt/scope-plugin-options
v7.5.5
Published
This will modify the CRA ModuleScopePlugin plugin that prevents to import modules from outside the `src` directory.
Downloads
821
Readme
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
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:
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
{
"scripts": {
...
"build": "kkt build",
"start": "kkt start",
...
}
}
And you can now use CRA to build your library
Configurations
import path from 'path';
import scopePluginOptions from '@kkt/scope-plugin-options';
export default (conf, evn, options) => {
return scopePluginOptions(conf, evn, false);
}
Disable scopePlugin
import path from 'path';
import { disableScopePlugin } from '@kkt/scope-plugin-options';
export default (conf, evn, options) => {
return disableScopePlugin(conf);
}
API
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