见BUG 描述
- 发布:2023-03-22 17:58
- 更新:2023-03-22 17:58
- 阅读:264
产品分类: uniapp/H5
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: win10
浏览器平台: Chrome
浏览器版本: 107.0.1418.52 (正式版本) (64 位)
项目创建方式: CLI
CLI版本号: 3.0.0-3070320230222002
App下载地址或H5⽹址: 无
示例代码:
操作步骤:
在vue3+typescript项目中,使用<script lang="js"></script>编写带有uni相关的api的代码
在vue3+typescript项目中,使用<script lang="js"></script>编写带有uni相关的api的代码
预期结果:
注入uni相关api
注入uni相关api
实际结果:
未注入uni相关api
未注入uni相关api
bug描述:
在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
// ......
}
0 个回复