uni-app
uni-app copied to clipboard
【bug】源码实锤,在vue3项目中使用lang="js"的script标签时,无法在uni:inject-try插件中对uni的api进行注入
在isJsFile函数中,检查了script标签的lang属性要是ts
https://github.com/dcloudio/uni-app/blob/next-publish-alpha/packages/uni-cli-shared/src/vite/utils/url.ts#L76
export function isJsFile(id: string) {
const { filename, query } = parseVueRequest(id)
const isJs = EXTNAME_JS_RE.test(filename)
if (isJs) {
return true
}
const isVueJs =
EXTNAME_VUE.includes(path.extname(filename)) &&
(!query.vue || query.setup || hasOwn(query, 'lang.ts'))
if (isVueJs) {
return true
}
return false
}
在uni:inject-try插件中调用了isJsFile函数检查文件类型
https://github.com/dcloudio/uni-app/blob/next-publish-alpha/packages/uni-cli-shared/src/vite/plugins/inject.ts#L87
export function uniViteInjectPlugin(
name: string,
options: InjectOptions
): Plugin {
// ......
if (!isJsFile(id)) return null
// ......
}