package-proxy
v0.1.10
Published
Proxify your npm package for easier imports
Downloads
163
Maintainers
Readme
Table of Contents
Install with npm:
npm i package-proxy --save-dev
Install with yarn:
yarn add package-proxy --dev
The problem
In most package, all module are exports in one barrel file like this
import { foo, bar, baz } from "packageName"
This can be a dangerous practice because most of bundler (including webpack) will import every module in the bundled flie even if you only import one module.
This can lead to a huge increasing of bundle size.
=> Read more about barrel file and tree shaking
On another side, if you need to expose a lot of module and want to get rid of barrel file,
you will need to let the user do import like this:
import foo from "packageName/lib/foo"
import bar from "packageName/lib/path/to/file/bar"
This package help you to create proxy to transform import like this:
import foo from "packageName/lib/foo"
import bar from "packageName/lib/path/to/file/bar"
into this:
import foo from "packageName/foo"
import bar from "packageName/bar"
with one config file.
More precisely, it will create a package.json
file like this:
{
"name": "packageName/foo",
"private": true,
"main": "../lib/path/to/module/foo/index.js",
"module": "../esm/path/to/module/foo/index.js",
"types": "../lib/path/to/module/foo/index.d.ts"
}
Config file
In your root folder, create a pproxy.json
file
{
"packageName": "yourPackageName",
"proxify": [
{
"src": "folderToProxify"
}
]
}
//on continue demain j'ne ai ma claque
CLI
commands
| command | description | | --------- | ---------------------- | | write | create the proxy files |
This is an optional command. Avoiding it will also trigger the write command
proxify write
| command | description | | --------- | ---------------------- | | clean | clean the proxy files. |
proxify clean
options
| option | description | | ------------------------- | --------------------------- | | -c, --config <path> | custom the config file path |
proxify create --config path/to/config.json
| option | description | | -------------- | ----------- | | -h, --help | Show help |
proxify --help
| option | description | | ----------------- | -------------------- | | -v, --version | Show package version |
proxify --version