Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/vite-plugin/vite-plugin-native

Supports Node/Electron C/C++ native addons
https://github.com/vite-plugin/vite-plugin-native

Last synced: 1 day ago
JSON representation

Supports Node/Electron C/C++ native addons

Awesome Lists containing this project

README

        

# vite-plugin-native

Supports Node/Electron C/C++ native addons. It is a bundle solution based on [Webpack](https://github.com/webpack/webpack).

> Thanks [Erick Zhao](https://github.com/erickzhao) for providing inspiration :)

[![NPM version](https://img.shields.io/npm/v/vite-plugin-native.svg)](https://npmjs.org/package/vite-plugin-native)
[![NPM Downloads](https://img.shields.io/npm/dm/vite-plugin-native.svg)](https://npmjs.org/package/vite-plugin-native)

English | [įŽ€äŊ“中文](./README.zh-CN.md)

## Install

```bash
npm i -D vite-plugin-native
```

## Usage

```js
import native from 'vite-plugin-native'

export default {
plugins: [
native({
// Enable Webpack
webpack: {},
})
]
}
```

## API

```ts
export interface NativeOptions {
/** @default 'node_natives' */
assetsDir?: string
/**
* By default native modules are automatically detected if this option is not explicitly configure by the user.
* @deprecated use `ignore` option instead
*/
natives?: string[] | ((natives: string[]) => string[])
/** Ignore the specified native module. */
ignore?: (name: string) => boolean | undefined
/** Force copy *.node files to dist/node_modules path if Webpack can't bundle native modules correctly. */
forceCopyIfUnbuilt?: true
/** Enable and configure webpack. */
webpack?: {
config?: (config: Configuration) => Configuration | undefined | Promise
'node-loader'?: NodeLoaderOptions,
'@vercel/webpack-asset-relocator-loader'?: WebpackAssetRelocatorLoader,
},
}
```

## How to work

> TODO: Translate into English.

See 👉đŸģ [åˇĨäŊœåŽŸį† (How to work)](./README.zh-CN.md#åˇĨäŊœåŽŸį†)