@dcloudio/uni-cli-shared
Version:
uni-cli-shared
30 lines (28 loc) • 962 B
JavaScript
const path = require('path')
const {
resolveUTSModule
} = require('./uts')
class UTSResolverPlugin {
apply (resolver) {
resolver.hooks.resolve.tapAsync('UTSResolverPlugin', (request, resolveContext, callback) => {
let utsModulePath = ''
if (request.request.startsWith('@/uni_modules/')) {
utsModulePath = path.resolve(process.env.UNI_INPUT_DIR, request.request.replace('@/', ''))
} else if (request.request.includes('uni_modules')) {
utsModulePath = path.resolve(request.path, request.request)
}
if (utsModulePath) {
const utsModule = resolveUTSModule(utsModulePath)
if (utsModule) {
if (process.env.UNI_PLATFORM === 'app-plus') {
request.request = utsModule + '/package.json?uts-proxy'
} else {
request.request = utsModule
}
}
}
callback()
})
}
}
module.exports = UTSResolverPlugin