@hankei6km/rollup-plugin-nodebox-fs-files
Version:
Converts files to Nodebox files
119 lines (94 loc) • 2.12 kB
Markdown
# rollup-plugin-nodebox-fs-files
Converts file to [Nodebox](https://sandpack.codesandbox.io/docs/advanced-usage/nodebox) [files](https://github.com/codesandbox/nodebox-runtime/blob/main/packages/nodebox/api.md#nodeboxfsinitfiles).
## Installation
```shell
npm install --save-dev @hankei6km/rollup-plugin-nodebox-fs-files
```
## Usage
```js
// rollup.config.js
import nodeboxFsFiles from '@hankei6km/rollup-plugin-nodebox-fs-files'
export default {
input: 'src/index.mjs',
plugins: [
nodeboxFsFiles({
from: 'box-src/proj',
insertTo: 'src/files.mjs'
})
]
}
```
from
```
box-src/proj/
├── index.js
├── node_modules
│ └── ...
├── public
│ └── image.png
└── src
└── lib.js
```
to
```js
// src/files.mjs
export const files = {
'index.js': 'console.log(...;\n',
'public/image.png': { type: 'Buffer', data: [97, 98, 99 /*...*/] },
'src/lib.js': 'export default ...;\n'
}
```
> NOTE: Define a temporary `export` to bypass a linting error.
>
> ```js
> // src/files.mjs
> export const files = {}
> ```
## Examples
`misc` directory is ignored.
```js
// rollup.config.js
import nodeboxFsFiles from '@hankei6km/rollup-plugin-nodebox-fs-files'
export default {
input: 'src/index.mjs',
plugins: [
nodeboxFsFiles({
from: 'box-src/proj',
insertTo: 'src/files.mjs',
excludeFrom: '**/misc/**'
})
]
}
```
converts `.mp4` and `.mp3` files as binary.
```js
// rollup.config.js
import nodeboxFsFiles from '@hankei6km/rollup-plugin-nodebox-fs-files'
export default {
input: 'src/index.mjs',
plugins: [
nodeboxFsFiles({
from: 'box-src/proj',
insertTo: 'src/files.mjs',
binaryFile: ['**/*.mp4', '**/*.mp3']
})
]
}
```
vite example.
```js
// vite.config.js
import { defineConfig } from 'vite'
import { nodeboxFsFiles } from '@hankei6km/rollup-plugin-nodebox-fs-files'
export default defineConfig({
plugins: [
nodeboxFsFiles({
from: 'box-src/vite-project',
insertTo: 'src/files.mjs'
})
]
})
```
## License
MIT License
Copyright (c) 2023 hankei6km