@devunus/vite-plugin
v0.0.12
Published
Vite plugin for JavaScript bundler functionality
Maintainers
Readme
@devunus/vite-plugin
Upload your source maps with the Devunus Vite Plugin.
Features
- Automatic sourcemap upload after build
- Unique release ID generation for each build
- Git commit ID tracking (when available)
- Optional release version
- Option to delete sourcemaps after upload
- Support for multiple build outputs (client/server)
- Platform-agnostic release data injection
Installation
npm install @devunus/vite-plugin --save-devUsage
Add the plugin to your Vite configuration:
// vite.config.ts
import { defineConfig } from 'vite';
import devunusPlugin from '@devunus/vite-plugin';
export default defineConfig({
build: {
sourcemap: true, // Source map generation must be turned on
},
plugins: [
devunusPlugin({
// Optional: SERVER SDK key (can also be set via DEVUNUS_SDK_KEY environment variable)
// If not provided, the plugin will look for DEVUNUS_SDK_KEY in process.env
sdkKey: process.env.DEVUNUS_SDK_KEY,
// Optional: Directory containing sourcemap files (default: 'dist')
sourcemapDir: 'dist',
// Optional: Version of your application
version: '1.0.0',
// Optional: Whether to delete sourcemaps after upload (default: true)
// Warning: Leaving generated sourcemaps in your build may expose them to the public
deleteSourcemap: true
})
]
});SDK Key Configuration
The plugin requires a Devunus SDK key which can be provided in two ways:
Via environment variable:
export DEVUNUS_SDK_KEY=your-sdk-keyVia plugin options:
devunusPlugin({ sdkKey: 'your-sdk-key', // ... other options })
The plugin will first check for the SDK key in the plugin options, then fall back to the environment variable. If neither is provided, it will throw an error.
Multiple Build Outputs
For projects with multiple build outputs (like Remix or Next.js), you can specify multiple sourcemap directories:
devunusPlugin({
sdkKey: process.env.DEVUNUS_SDK_KEY,
sourcemapDir: ['dist/client', 'dist/server'],
version: '1.0.0',
deleteSourcemap: true,
})Accessing Release Data
The plugin injects release data as a global constant that can be accessed in your code:
// The release data will be available as a global constant
console.log(__DV_RELEASE__.releaseId);
console.log(__DV_RELEASE__.version);
console.log(__DV_RELEASE__.gitSha);Vite plugin doesn't upload source maps in watch-mode/development-mode. We recommend running a production build to test your configuration.
License
MIT
