Bringing Skypack's power to platforms supported by Unplugin!
Vite
|
Rollup
|
Nuxt
|
Webpack 4-5
|
Vue
Inspired by rollup-plugin-skypin.
Option | Type | Default Value | Description |
---|---|---|---|
packages | string[] |
[] |
Declare the package imports that should be changed here. This is done manually opposed to automatically because Unplugin performs some low-level operations that can involve accessing dependencies that were never intended to be. Packages are able to prefetched through this method too, so there are extra performance benefits. |
minify | boolean |
true |
Whether to use Skypack's minified asset. |
replace | (id: string) => boolean|string |
() => true |
Uses a returned string as the package id. Returning a boolean value simply toggles Skypack URL substitution. |
Strictly similar to what Skypack allows. Note that the import syntax in both the packages
and file listings need to be identical.
import { SKYPACK_URL, isValidVersion, isValidPackage, getSkypackUrl } from 'unplugin-skypin'
Check out the functions over on GitHub!
- Webpack is not currently supported.
Vite
// vite.config.{m}js
import skypin from '@tropicalraisel/unplugin-skypin/vite'
import { defineConfig } from 'vite'
export default defineConfig({
plugins: [
skypin({
packages: [
/* imports to change here */
],
/* other options */
}),
],
})
Rollup
// rollup.config.{m}js
import skypin from '@tropicalraisel/unplugin-skypin/rollup'
export default {
input: 'src/index.js',
output: {
dir: 'dist',
format: 'esm',
},
plugins: [
skypin({
packages: [
/* imports to change here */
],
/* other options */
}),
],
}
Nuxt
// nuxt.config.{m}js
export default {
buildModules: [
['@tropicalraisel/unplugin-skypin/nuxt', { /* options */ }],
],
}
Reference the test suite here: https://github.com/tropicalraisel/unplugin-skypin/tree/master/playground/nuxt
This module works for both Nuxt 2 and Nuxt Vite
Webpack
// webpack.config.{c}js
module.exports = {
/* ... */
plugins: [
require('@tropicalraisel/unplugin-skypin/webpack').default({ /* options */ })
]
}
Vue CLI
// vue.config.{c}js
module.exports = {
configureWebpack: {
plugins: [
require('@tropicalraisel/unplugin-skypin/webpack').default({ /* options */ }),
],
},
}
pnpm i
Check the package.json
for the available scripts.