mirror of
https://github.com/nuxt/nuxt.git
synced 2024-11-15 02:14:44 +00:00
30 lines
951 B
TypeScript
30 lines
951 B
TypeScript
|
import { useNuxt } from '@nuxt/kit'
|
||
|
|
||
|
export const addModuleTranspiles = () => {
|
||
|
const nuxt = useNuxt()
|
||
|
|
||
|
const modules = [
|
||
|
...nuxt.options.buildModules,
|
||
|
...nuxt.options.modules,
|
||
|
...nuxt.options._modules
|
||
|
]
|
||
|
.map(m => typeof m === 'string' ? m : Array.isArray(m) ? m[0] : m.src)
|
||
|
.filter(m => typeof m === 'string')
|
||
|
.map(m => m.split('node_modules/').pop())
|
||
|
|
||
|
// Try to sanitize modules to better match imports
|
||
|
nuxt.options.build.transpile =
|
||
|
nuxt.options.build.transpile.map(m => typeof m === 'string' ? m.split('node_modules/').pop() : m)
|
||
|
|
||
|
function isTranspilePresent (mod: string) {
|
||
|
return nuxt.options.build.transpile.some(t => !(t instanceof Function) && (t instanceof RegExp ? t.test(mod) : new RegExp(t).test(mod)))
|
||
|
}
|
||
|
|
||
|
// Automatically add used modules to the transpile
|
||
|
for (const module of modules) {
|
||
|
if (!isTranspilePresent(module)) {
|
||
|
nuxt.options.build.transpile.push(module)
|
||
|
}
|
||
|
}
|
||
|
}
|