dcloudio / dcloudio/uni-app

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

Open
#4,222 1 comment 0 reactions 1 assignee Claimed by @GRCmade View on GitHub
Dominant language
JavaScript
Stars
41.6k
Forks
3.7k
Avg merge
7h 6m
Merged PRs (30d)
6

Description

在`isJsFile`函数中,检查了script标签的lang属性要是ts
https://github.com/dcloudio/uni-app/blob/next-publish-alpha/packages/uni-cli-shared/src/vite/utils/url.ts#L76
```typescript
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
```typescript
export function uniViteInjectPlugin(
name: string,
options: InjectOptions
): Plugin {
// ......
if (!isJsFile(id)) return null
// ......
}
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.