提交 d52ad45d 编写于 作者: fxy060608's avatar fxy060608

fix(h5): improve inject filter #2813

上级 9fb36030
export const PUBLIC_DIR = 'static'
export const EXTNAME_JS = ['.js', '.ts']
export const EXTNAME_JS = ['.js', '.ts', '.jsx', '.tsx']
export const EXTNAME_VUE = ['.vue', '.nvue']
export const EXTNAME_VUE_RE = /\.(vue|nvue)$/
export const EXTNAME_JS_RE = /\.[jt]sx?$/
// APP 平台解析页面后缀的优先级
export const PAGE_EXTNAME_APP = ['.nvue', '.vue']
......
......@@ -16,7 +16,7 @@ import { walk } from 'estree-walker'
import { extend } from '@vue/shared'
import { MagicString } from '@vue/compiler-sfc'
import { EXTNAME_JS, EXTNAME_VUE } from '../../constants'
import { EXTNAME_JS_RE, EXTNAME_VUE } from '../../constants'
import {
isProperty,
......@@ -73,16 +73,20 @@ export function uniViteInjectPlugin(options: InjectOptions): Plugin {
`(?:${Array.from(modulesMap.keys()).map(escape).join('|')})`,
'g'
)
const EXTNAMES = EXTNAME_JS.concat(EXTNAME_VUE)
const sourceMap = options.sourceMap !== false
const callback = options.callback
return {
name: 'vite:uni-inject',
transform(code, id) {
if (!filter(id)) return null
const { filename, query } = parseVueRequest(id)
if (query.vue || !EXTNAMES.includes(path.extname(filename))) {
return null
const isJs = EXTNAME_JS_RE.test(id)
if (!isJs) {
const { filename, query } = parseVueRequest(id)
const isVueJs =
EXTNAME_VUE.includes(path.extname(filename)) && !query.vue
if (!isVueJs) {
return null
}
}
debugInjectTry(id)
if (code.search(firstpass) === -1) return null
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册