Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
1cbf4950
U
uni-app
项目概览
DCloud
/
uni-app
4 个月 前同步成功
通知
726
Star
38705
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1cbf4950
编写于
3月 11, 2020
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(cli): template asset url
上级
af39305e
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
83 addition
and
12 deletion
+83
-12
packages/uni-cli-shared/lib/vue-loader.js
packages/uni-cli-shared/lib/vue-loader.js
+33
-3
packages/uni-template-compiler/lib/asset-url.js
packages/uni-template-compiler/lib/asset-url.js
+41
-0
packages/uni-template-compiler/lib/index.js
packages/uni-template-compiler/lib/index.js
+5
-0
packages/vue-cli-plugin-uni/lib/app-plus/index.js
packages/vue-cli-plugin-uni/lib/app-plus/index.js
+2
-3
packages/vue-cli-plugin-uni/lib/configure-webpack.js
packages/vue-cli-plugin-uni/lib/configure-webpack.js
+1
-1
packages/vue-cli-plugin-uni/lib/h5/index.js
packages/vue-cli-plugin-uni/lib/h5/index.js
+1
-5
未找到文件。
packages/uni-cli-shared/lib/vue-loader.js
浏览文件 @
1cbf4950
const
compiler
=
require
(
'
@dcloudio/uni-template-compiler
'
)
// 非 h5 平台禁用,由uni-template-compiler自行实现
const
transformAssetUrls
=
{
audio
:
false
,
video
:
false
,
source
:
false
,
img
:
false
,
image
:
false
,
use
:
false
}
if
(
process
.
env
.
UNI_PLATFORM
===
'
h5
'
)
{
Object
.
assign
(
transformAssetUrls
,
{
'
audio
'
:
'
src
'
,
'
video
'
:
[
'
src
'
,
'
poster
'
],
'
source
'
:
'
src
'
,
'
img
'
:
'
src
'
,
'
use
'
:
[
'
xlink:href
'
,
'
href
'
],
'
image
'
:
'
src
'
,
'
cover-image
'
:
'
src
'
,
'
v-uni-audio
'
:
'
src
'
,
'
v-uni-video
'
:
[
'
src
'
,
'
poster
'
],
'
v-uni-image
'
:
'
src
'
,
'
v-uni-cover-image
'
:
'
src
'
})
}
const
defaultOptions
=
{
const
defaultOptions
=
{
compiler
:
require
(
'
@dcloudio/uni-template-compiler
'
)
,
compiler
,
hotReload
:
false
,
hotReload
:
false
,
cacheDirectory
:
false
,
cacheDirectory
:
false
,
cacheIdentifier
:
false
cacheIdentifier
:
false
,
transformAssetUrls
}
}
const
defaultCompilerOptions
=
{
const
defaultCompilerOptions
=
{
...
@@ -18,5 +47,6 @@ module.exports = {
...
@@ -18,5 +47,6 @@ module.exports = {
options
,
{
options
,
{
compilerOptions
:
Object
.
assign
({},
defaultCompilerOptions
,
compilerOptions
)
compilerOptions
:
Object
.
assign
({},
defaultCompilerOptions
,
compilerOptions
)
})
})
}
},
compiler
}
}
packages/uni-template-compiler/lib/asset-url.js
0 → 100644
浏览文件 @
1cbf4950
const
transformAssetUrls
=
{
'
audio
'
:
'
src
'
,
'
video
'
:
[
'
src
'
,
'
poster
'
],
'
img
'
:
'
src
'
,
'
image
'
:
'
src
'
,
'
cover-image
'
:
'
src
'
,
'
v-uni-audio
'
:
'
src
'
,
'
v-uni-video
'
:
[
'
src
'
,
'
poster
'
],
'
v-uni-image
'
:
'
src
'
,
'
v-uni-cover-image
'
:
'
src
'
}
function
rewrite
(
attr
,
name
)
{
if
(
attr
.
name
===
name
)
{
const
value
=
attr
.
value
// only transform static URLs
if
(
value
.
charAt
(
0
)
===
'
"
'
&&
value
.
charAt
(
value
.
length
-
1
)
===
'
"
'
)
{
attr
.
value
=
attr
.
value
.
replace
(
'
"@/
'
,
'
"/
'
)
.
replace
(
'
"~@/
'
,
'
"/
'
)
return
true
}
}
return
false
}
module
.
exports
=
{
postTransformNode
:
(
node
)
=>
{
if
(
!
node
.
attrs
)
{
return
}
const
attributes
=
transformAssetUrls
[
node
.
tag
]
if
(
!
attributes
)
{
return
}
if
(
typeof
attributes
===
'
string
'
)
{
node
.
attrs
.
some
(
attr
=>
rewrite
(
attr
,
attributes
))
}
else
if
(
Array
.
isArray
(
attributes
))
{
attributes
.
forEach
(
item
=>
node
.
attrs
.
some
(
attr
=>
rewrite
(
attr
,
item
)))
}
}
}
packages/uni-template-compiler/lib/index.js
浏览文件 @
1cbf4950
...
@@ -42,6 +42,11 @@ module.exports = {
...
@@ -42,6 +42,11 @@ module.exports = {
(
options
.
modules
||
(
options
.
modules
=
[])).
push
(
autoComponentsModule
)
(
options
.
modules
||
(
options
.
modules
=
[])).
push
(
autoComponentsModule
)
}
}
// 非h5平台,transformAssetUrls
if
(
process
.
env
.
UNI_PLATFORM
!==
'
h5
'
)
{
(
options
.
modules
||
(
options
.
modules
=
[])).
push
(
require
(
'
./asset-url
'
))
}
options
.
isUnaryTag
=
isUnaryTag
options
.
isUnaryTag
=
isUnaryTag
// 将 autoComponents 挂在 isUnaryTag 上边
// 将 autoComponents 挂在 isUnaryTag 上边
options
.
isUnaryTag
.
autoComponents
=
new
Set
()
options
.
isUnaryTag
.
autoComponents
=
new
Set
()
...
...
packages/vue-cli-plugin-uni/lib/app-plus/index.js
浏览文件 @
1cbf4950
...
@@ -3,8 +3,7 @@ const webpack = require('webpack')
...
@@ -3,8 +3,7 @@ const webpack = require('webpack')
const
{
const
{
getMainEntry
,
getMainEntry
,
isInHBuilderX
,
isInHBuilderX
getPlatformCompiler
}
=
require
(
'
@dcloudio/uni-cli-shared
'
)
}
=
require
(
'
@dcloudio/uni-cli-shared
'
)
const
vueLoader
=
require
(
'
@dcloudio/uni-cli-shared/lib/vue-loader
'
)
const
vueLoader
=
require
(
'
@dcloudio/uni-cli-shared/lib/vue-loader
'
)
...
@@ -163,7 +162,7 @@ const v3 = {
...
@@ -163,7 +162,7 @@ const v3 = {
loader
:
isAppService
?
'
wrap-loader
'
:
path
.
resolve
(
__dirname
,
loader
:
isAppService
?
'
wrap-loader
'
:
path
.
resolve
(
__dirname
,
'
../../packages/webpack-uni-app-loader/view/main.js
'
),
'
../../packages/webpack-uni-app-loader/view/main.js
'
),
options
:
{
options
:
{
compiler
:
getPlatformCompiler
()
,
compiler
:
vueLoader
.
compiler
,
before
:
[
before
:
[
beforeCode
+
statCode
+
getGlobalUsingComponentsCode
()
beforeCode
+
statCode
+
getGlobalUsingComponentsCode
()
]
]
...
...
packages/vue-cli-plugin-uni/lib/configure-webpack.js
浏览文件 @
1cbf4950
...
@@ -264,4 +264,4 @@ module.exports = function configureWebpack (platformOptions, manifestPlatformOpt
...
@@ -264,4 +264,4 @@ module.exports = function configureWebpack (platformOptions, manifestPlatformOpt
}
}
},
platformWebpackConfig
)
},
platformWebpackConfig
)
}
}
}
}
packages/vue-cli-plugin-uni/lib/h5/index.js
浏览文件 @
1cbf4950
...
@@ -182,11 +182,7 @@ global.onAppShow = function(){};
...
@@ -182,11 +182,7 @@ global.onAppShow = function(){};
modifyVueLoader
(
webpackConfig
,
{
modifyVueLoader
(
webpackConfig
,
{
isH5
:
true
,
isH5
:
true
,
hotReload
:
true
,
hotReload
:
true
transformAssetUrls
:
{
'
v-uni-image
'
:
[
'
src
'
],
'
v-uni-cover-image
'
:
[
'
src
'
]
}
},
require
(
'
./compiler-options
'
),
api
)
},
require
(
'
./compiler-options
'
),
api
)
if
(
process
.
env
.
NODE_ENV
===
'
production
'
)
{
if
(
process
.
env
.
NODE_ENV
===
'
production
'
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录