mirror of
https://github.com/Instadapp/vue-web3.git
synced 2024-07-29 21:48:25 +00:00
59 lines
1.8 KiB
TypeScript
59 lines
1.8 KiB
TypeScript
import { addAutoImport, defineNuxtModule, extendViteConfig } from '@nuxt/kit'
|
|
import { NodeGlobalsPolyfillPlugin } from '@esbuild-plugins/node-globals-polyfill'
|
|
import rollupNodePolyFill from 'rollup-plugin-node-polyfills'
|
|
|
|
export interface ModuleOptions {
|
|
autoImport: boolean
|
|
}
|
|
|
|
export default defineNuxtModule<ModuleOptions>({
|
|
meta: {
|
|
name: 'vue-web3',
|
|
configKey: 'web3',
|
|
},
|
|
defaults: {
|
|
autoImport: true,
|
|
},
|
|
setup(options, nuxt) {
|
|
// nuxt.hook('vite:extendConfig', (clientConfig, { isClient }) => {
|
|
// if (isClient && process.env.NODE_ENV === 'production') {
|
|
// clientConfig.resolve.alias = {
|
|
// ...clientConfig.resolve.alias,
|
|
// web3: resolve('./node_modules/web3/dist/web3.min.js')
|
|
// }
|
|
// }
|
|
// })
|
|
|
|
extendViteConfig((config) => {
|
|
config.build = config.build || {}
|
|
config.build.rollupOptions = config.build.rollupOptions || {}
|
|
config.build.rollupOptions.plugins =
|
|
config.build.rollupOptions.plugins || []
|
|
config.build.rollupOptions.plugins.push(rollupNodePolyFill())
|
|
|
|
config.optimizeDeps = config.optimizeDeps || {}
|
|
config.optimizeDeps.esbuildOptions =
|
|
config.optimizeDeps.esbuildOptions || {}
|
|
config.optimizeDeps.esbuildOptions.define =
|
|
config.optimizeDeps.esbuildOptions.define || {}
|
|
config.optimizeDeps.esbuildOptions.define.global = 'globalThis'
|
|
|
|
config.optimizeDeps.esbuildOptions.plugins =
|
|
config.optimizeDeps.esbuildOptions.plugins || []
|
|
config.optimizeDeps.esbuildOptions.plugins.push(
|
|
NodeGlobalsPolyfillPlugin({
|
|
process: true,
|
|
buffer: true,
|
|
}),
|
|
)
|
|
})
|
|
|
|
if (options.autoImport) {
|
|
addI({
|
|
name: 'useWeb3',
|
|
from: '@instadapp/vue-web3',
|
|
})
|
|
}
|
|
},
|
|
})
|