uni-app icon indicating copy to clipboard operation
uni-app copied to clipboard

【bug】源码实锤,在vue3项目中使用lang="js"的script标签时,无法在uni:inject-try插件中对uni的api进行注入

Open 643104191 opened this issue 2 years ago • 1 comments

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
  // ......
}

643104191 avatar Mar 22 '23 09:03 643104191