Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DiDi
Chameleon
提交
ed08f034
C
Chameleon
项目概览
DiDi
/
Chameleon
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Chameleon
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ed08f034
编写于
4月 17, 2019
作者:
J
JiM-W
提交者:
yylgit
4月 22, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
w完成icon路径解析
上级
e5a94ea6
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
87 addition
and
2 deletion
+87
-2
packages/chameleon-loader/package.json
packages/chameleon-loader/package.json
+2
-1
packages/chameleon-loader/src/loader.js
packages/chameleon-loader/src/loader.js
+7
-1
packages/chameleon-loader/src/miniapp-script.js
packages/chameleon-loader/src/miniapp-script.js
+78
-0
未找到文件。
packages/chameleon-loader/package.json
浏览文件 @
ed08f034
...
...
@@ -22,6 +22,7 @@
"chameleon-tool-utils"
:
"0.4.0-alpha.0"
,
"consolidate"
:
"0.14.0"
,
"de-indent"
:
"1.0.2"
,
"fs-extra"
:
"^7.0.1"
,
"hash-sum"
:
"1.0.2"
,
"he"
:
"1.1.0"
,
"jquery"
:
"3.3.1"
,
...
...
@@ -80,4 +81,4 @@
"license"
:
"Apache"
,
"mail"
:
"ChameleonCore@didiglobal.com"
,
"gitHead"
:
"5ddcde4330774710f7646559446e008f7785ce00"
}
\ No newline at end of file
}
packages/chameleon-loader/src/loader.js
浏览文件 @
ed08f034
...
...
@@ -236,6 +236,7 @@ module.exports = function (content) {
})
usingComponents
=
prepareParseUsingComponents
(
usingComponents
);
//cml 编译出wxml模板
if
(
type
!==
'
app
'
)
{
let
parseTemplate
=
parts
.
template
&&
parts
.
template
[
0
];
...
...
@@ -268,9 +269,14 @@ module.exports = function (content) {
Object
.
keys
(
newJsonObj
.
usingComponents
).
forEach
(
key
=>
{
newJsonObj
.
usingComponents
[
key
]
=
cmlUtils
.
handleSpecialChar
(
newJsonObj
.
usingComponents
[
key
])
});
//处理tabbar中配置的icon路径
if
(
type
==
'
app
'
){
debugger
;
miniAppScript
.
handleApptabbar
(
newJsonObj
,
self
,
filePath
,
context
,
cmlType
)
}
let
jsonResult
=
JSON
.
stringify
(
newJsonObj
,
''
,
4
);
self
.
emitFile
(
emitJsonPath
,
jsonResult
);
//cml
parts
.
styles
.
forEach
(
function
(
style
,
i
)
{
//微信小程序在使用组件的时候 不支持属性选择器
...
...
packages/chameleon-loader/src/miniapp-script.js
浏览文件 @
ed08f034
...
...
@@ -5,6 +5,7 @@ const babylon = require('@babel/parser');
const
traverse
=
require
(
'
babel-traverse
'
)[
"
default
"
];
const
t
=
require
(
'
@babel/types
'
)
const
cmlUtils
=
require
(
'
chameleon-tool-utils
'
);
const
fse
=
require
(
'
fs-extra
'
);
/** *
* @param:loaderContext webpack loader的上下文
...
...
@@ -165,3 +166,80 @@ _.commonParseScript = function(source, callback) {
}
})
}
_
.
handleApptabbar
=
function
(
newJsonObj
,
loaderContext
,
filePath
,
context
,
type
)
{
debugger
let
tabbarIconPaths
=
_
.
getTabbarIconPaths
(
newJsonObj
.
tabBar
,
type
);
if
(
tabbarIconPaths
.
length
)
{
tabbarIconPaths
.
forEach
((
item
)
=>
{
let
rootDir
=
path
.
resolve
(
cml
.
projectRoot
,
`dist/
${
type
}
`
);
let
destIconPath
=
path
.
resolve
(
rootDir
,
item
.
finalPath
);
// 获取到要将icon拷贝的目录
let
iconDir
=
path
.
dirname
(
destIconPath
);
let
sourceIconPath
=
path
.
resolve
(
filePath
,
item
.
originPath
)
_
.
emitIcon
(
sourceIconPath
,
destIconPath
,
iconDir
);
});
}
}
_
.
getRelativeIconPath
=
function
(
p
)
{
let
fileName
=
path
.
parse
(
p
).
base
;
return
path
.
join
(
'
./icon
'
,
fileName
)
}
_
.
getTabbarIconPaths
=
function
(
tabbar
,
type
)
{
let
iconPaths
=
[];
debugger
;
if
(
tabbar
&&
(
type
===
'
baidu
'
||
type
===
'
wx
'
))
{
(
tabbar
.
list
||
[]).
forEach
((
item
)
=>
{
if
(
item
.
iconPath
)
{
let
iconInfo
=
{};
iconInfo
.
originPath
=
item
.
iconPath
;
item
.
iconPath
=
_
.
getRelativeIconPath
(
item
.
iconPath
);
iconInfo
.
finalPath
=
item
.
iconPath
;
iconPaths
.
push
(
iconInfo
);
}
if
(
item
.
selectedIconPath
)
{
let
iconInfo
=
{};
iconInfo
.
originPath
=
item
.
selectedIconPath
;
item
.
selectedIconPath
=
_
.
getRelativeIconPath
(
item
.
selectedIconPath
);
iconInfo
.
finalPath
=
item
.
selectedIconPath
;
iconPaths
.
push
(
iconInfo
);
}
})
}
if
(
tabbar
&&
type
===
'
alipay
'
)
{
(
tabbar
.
items
||
[]).
forEach
((
item
)
=>
{
if
(
item
.
icon
)
{
let
iconInfo
=
{};
iconInfo
.
originPath
=
item
.
icon
;
item
.
icon
=
_
.
getRelativeIconPath
(
item
.
icon
);
iconInfo
.
finalPath
=
item
.
icon
;
iconPaths
.
push
(
iconInfo
);
}
if
(
item
.
activeIcon
)
{
let
iconInfo
=
{};
iconInfo
.
originPath
=
item
.
activeIcon
;
item
.
activeIcon
=
_
.
getRelativeIconPath
(
item
.
activeIcon
);
iconInfo
.
finalPath
=
item
.
activeIcon
;
iconPaths
.
push
(
iconInfo
);
}
})
}
return
iconPaths
;
}
_
.
emitIcon
=
function
(
sourceFile
,
destIconPaht
,
dir
)
{
fse
.
ensureDir
(
dir
).
then
(()
=>
{
console
.
log
(
'
创建目录成功
'
);
fse
.
copySync
(
sourceFile
,
destIconPaht
)
.
then
(()
=>
{
console
.
log
(
'
success!
'
)
})
[
"
catch
"
](
err
=>
{
// console.error(err)
})
})[
"
catch
"
]((
err
)
=>
{
console
.
log
(
'
error
'
)
})
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录