Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
6bba18bd
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
6bba18bd
编写于
8月 21, 2018
作者:
S
Sandeep Somavarapu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
remove dependency on glob
上级
64556a39
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
23 addition
and
11 deletion
+23
-11
src/vs/platform/extensionManagement/node/extensionManagementService.ts
...rm/extensionManagement/node/extensionManagementService.ts
+23
-11
未找到文件。
src/vs/platform/extensionManagement/node/extensionManagementService.ts
浏览文件 @
6bba18bd
...
...
@@ -7,7 +7,6 @@
import
*
as
nls
from
'
vs/nls
'
;
import
*
as
path
from
'
path
'
;
import
*
as
glob
from
'
glob
'
;
import
*
as
pfs
from
'
vs/base/node/pfs
'
;
import
*
as
errors
from
'
vs/base/common/errors
'
;
import
{
assign
}
from
'
vs/base/common/objects
'
;
...
...
@@ -160,7 +159,7 @@ export class ExtensionManagementService extends Disposable implements IExtension
}
zip
(
extension
:
ILocalExtension
):
TPromise
<
URI
>
{
return
this
.
collectFiles
(
extension
)
return
TPromise
.
wrap
(
this
.
collectFiles
(
extension
)
)
.
then
(
files
=>
zip
(
path
.
join
(
tmpdir
(),
generateUuid
()),
files
))
.
then
(
path
=>
URI
.
file
(
path
));
}
...
...
@@ -173,17 +172,30 @@ export class ExtensionManagementService extends Disposable implements IExtension
return
this
.
downloadService
.
download
(
zipLocation
,
downloadedLocation
).
then
(()
=>
this
.
install
(
URI
.
file
(
downloadedLocation
),
type
));
}
private
collectFiles
(
extension
:
ILocalExtension
):
TPromise
<
IFile
[]
>
{
return
new
TPromise
((
c
,
e
)
=>
{
glob
(
'
**
'
,
{
cwd
:
extension
.
location
.
fsPath
,
nodir
:
true
,
dot
:
true
},
(
err
:
Error
,
files
:
string
[])
=>
{
if
(
err
)
{
e
(
err
);
}
else
{
c
(
files
.
map
(
f
=>
f
.
replace
(
/
\\
/g
,
'
/
'
))
.
map
(
f
=>
(
<
IFile
>
{
path
:
`extension/
${
f
}
`
,
localPath
:
path
.
join
(
extension
.
location
.
fsPath
,
f
)
})));
private
collectFiles
(
extension
:
ILocalExtension
):
Promise
<
IFile
[]
>
{
const
collectFilesFromDirectory
=
async
(
dir
):
Promise
<
string
[]
>
=>
{
let
entries
=
await
pfs
.
readdir
(
dir
);
entries
=
entries
.
map
(
e
=>
path
.
join
(
dir
,
e
));
const
stats
=
await
Promise
.
all
(
entries
.
map
(
e
=>
pfs
.
stat
(
e
)));
let
promise
:
Promise
<
string
[]
>
=
Promise
.
resolve
([]);
stats
.
forEach
((
stat
,
index
)
=>
{
const
entry
=
entries
[
index
];
if
(
stat
.
isFile
())
{
promise
=
promise
.
then
(
result
=>
([...
result
,
entry
]));
}
if
(
stat
.
isDirectory
())
{
promise
=
promise
.
then
(
result
=>
collectFilesFromDirectory
(
entry
)
.
then
(
files
=>
([...
result
,
...
files
])));
}
});
});
return
promise
;
};
return
collectFilesFromDirectory
(
extension
.
location
.
fsPath
)
.
then
(
files
=>
files
.
map
(
f
=>
(
<
IFile
>
{
path
:
`extension/
${
path
.
relative
(
extension
.
location
.
fsPath
,
f
)}
`
,
localPath
:
f
})));
}
install
(
vsix
:
URI
,
type
:
LocalExtensionType
=
LocalExtensionType
.
User
):
TPromise
<
IExtensionIdentifier
>
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录