The postinstall
script helper for handling native bindings in legacy npm
versions, this is a reimplementation of the node-install
functionality from esbuild
for napi-rs
ecosystem packages like rollup
, @swc/core
and unrs-resolver
.
For more details, please refer to the following issues:
- npm/cli#4828 -- root cause
- napi-rs/napi-rs#2569
- unrs/unrs-resolver#56
# pnpm
pnpm add napi-postinstall
# yarn
yarn add napi-postinstall
# npm
npm i napi-postinstall
# bun
bun add napi-postinstall
napi-postinstall unrs-resolver #<napi-package-name>
You can put it into scripts#postinstall
of your package.json
:
{
"scripts": {
"postinstall": "napi-postinstall unrs-resolver"
}
}
This will check and prepare the napi binding packages for you automatically.
export interface PackageJson {
name: string
version: string
}
export declare function checkAndPreparePackage(
packageNameOrPackageJson: PackageJson | string,
checkVersion?: boolean,
): Promise<void>
import { checkAndPreparePackage, isNpm } from 'napi-postinstall'
if (isNpm()) {
checkAndPreparePackage('unrs-resolver' /* <napi-package-name> */)
}
1stG | RxTS | UnTS |
---|---|---|
1stG | RxTS | UnTS |
---|---|---|
Detailed changes for each release are documented in CHANGELOG.md.