Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
菜鸟程序猿_c
uni-app
提交
f6d4cba2
U
uni-app
项目概览
菜鸟程序猿_c
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
f6d4cba2
编写于
8月 23, 2022
作者:
Q
qiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: static copy with path like glob
上级
fb6fe2ba
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
47 addition
and
1 deletion
+47
-1
packages/uni-cli-shared/__tests__/pathToGlob.spec.ts
packages/uni-cli-shared/__tests__/pathToGlob.spec.ts
+25
-0
packages/uni-cli-shared/src/utils.ts
packages/uni-cli-shared/src/utils.ts
+16
-0
packages/uni-cli-shared/src/watcher.ts
packages/uni-cli-shared/src/watcher.ts
+6
-1
未找到文件。
packages/uni-cli-shared/__tests__/pathToGlob.spec.ts
0 → 100644
浏览文件 @
f6d4cba2
import
{
pathToGlob
}
from
'
../src/utils
'
describe
(
'
pathToGlob
'
,
()
=>
{
it
(
'
path in unix
'
,
()
=>
{
expect
(
pathToGlob
(
'
/test
'
,
'
**/*.js
'
)).
toBe
(
'
/test/**/*.js
'
)
expect
(
pathToGlob
(
'
/test(1
'
,
'
**/*.js
'
)).
toBe
(
'
/test[(]1/**/*.js
'
)
expect
(
pathToGlob
(
'
/test(1
'
,
'
**/*.js
'
,
{
escape
:
true
})).
toBe
(
'
/test
\\
(1/**/*.js
'
)
})
it
(
'
path in windows
'
,
()
=>
{
expect
(
pathToGlob
(
'
C:
\\\\
test
\\
test
'
,
'
**/*.js
'
,
{
windows
:
true
})).
toBe
(
'
C:/test/test/**/*.js
'
)
expect
(
pathToGlob
(
'
C:
\\\\
test
\\
test(1
'
,
'
**/*.js
'
,
{
windows
:
true
})).
toBe
(
'
C:/test/test[(]1/**/*.js
'
)
expect
(
pathToGlob
(
'
C:
\\\\
test
\\
test(1
'
,
'
**/*.js
'
,
{
windows
:
true
,
escape
:
true
,
})
).
toBe
(
'
C:/test/test[(]1/**/*.js
'
)
})
})
packages/uni-cli-shared/src/utils.ts
浏览文件 @
f6d4cba2
...
...
@@ -91,3 +91,19 @@ export function normalizeParsePlugins(
if
(
isTS
)
plugins
.
push
(
'
typescript
'
,
'
decorators-legacy
'
)
return
plugins
}
export
function
pathToGlob
(
pathString
:
string
,
glob
:
string
,
options
:
{
windows
?:
boolean
;
escape
?:
boolean
}
=
{}
):
string
{
const
isWindows
=
'
windows
'
in
options
?
options
.
windows
:
/^win/
.
test
(
process
.
platform
)
const
useEscape
=
options
.
escape
const
str
=
isWindows
?
pathString
.
replace
(
/
\\
/g
,
'
/
'
)
:
pathString
let
safeStr
=
str
.
replace
(
/
[\\
*?[
\]
{}()!
]
/g
,
isWindows
||
!
useEscape
?
'
[$&]
'
:
'
\\
$&
'
)
return
path
.
posix
.
join
(
safeStr
,
glob
)
}
packages/uni-cli-shared/src/watcher.ts
浏览文件 @
f6d4cba2
...
...
@@ -2,6 +2,7 @@ import fs from 'fs-extra'
import
path
from
'
path
'
import
{
FSWatcher
,
watch
,
WatchOptions
}
from
'
chokidar
'
import
{
isArray
}
from
'
@vue/shared
'
import
{
pathToGlob
}
from
'
./utils
'
type
FileTransform
=
(
source
:
Buffer
,
filename
:
string
)
=>
void
|
string
export
interface
FileWatcherOptions
{
src
:
string
|
string
[]
...
...
@@ -30,7 +31,11 @@ export class FileWatcher {
if
(
!
this
.
watcher
)
{
const
copy
=
this
.
copy
.
bind
(
this
)
const
remove
=
this
.
remove
.
bind
(
this
)
this
.
watcher
=
watch
(
this
.
src
,
watchOptions
)
// escape chokidar cwd
const
src
=
this
.
src
.
map
((
src
)
=>
pathToGlob
(
path
.
resolve
(
watchOptions
.
cwd
),
src
)
)
this
.
watcher
=
watch
(
src
,
watchOptions
)
.
on
(
'
add
'
,
copy
)
.
on
(
'
addDir
'
,
copy
)
.
on
(
'
change
'
,
copy
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录