Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
bc93fd44
U
uni-app
项目概览
DCloud
/
uni-app
3 个月 前同步成功
通知
725
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,发现更多精彩内容 >>
提交
bc93fd44
编写于
3月 10, 2020
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(qa): add main-loader
上级
12e80116
变更
7
展开全部
显示空白变更内容
内联
并排
Showing
7 changed file
with
58 addition
and
9 deletion
+58
-9
packages/uni-quickapp/dist/vue.dev.js
packages/uni-quickapp/dist/vue.dev.js
+1
-1
packages/uni-quickapp/dist/vue.prod.js
packages/uni-quickapp/dist/vue.prod.js
+1
-1
packages/uni-quickapp/lib/configure-webpack.js
packages/uni-quickapp/lib/configure-webpack.js
+12
-0
packages/uni-quickapp/lib/loader/main-loader.js
packages/uni-quickapp/lib/loader/main-loader.js
+7
-0
packages/uni-quickapp/lib/manifest/entry-parser.js
packages/uni-quickapp/lib/manifest/entry-parser.js
+1
-1
packages/uni-quickapp/lib/plugin/main-plugin.js
packages/uni-quickapp/lib/plugin/main-plugin.js
+19
-0
src/platforms/quickapp/service/framework/vue.js
src/platforms/quickapp/service/framework/vue.js
+17
-6
未找到文件。
packages/uni-quickapp/dist/vue.dev.js
浏览文件 @
bc93fd44
此差异已折叠。
点击以展开。
packages/uni-quickapp/dist/vue.prod.js
浏览文件 @
bc93fd44
此差异已折叠。
点击以展开。
packages/uni-quickapp/lib/configure-webpack.js
浏览文件 @
bc93fd44
...
...
@@ -10,6 +10,8 @@ const NotifyPlugin = require('@hap-toolkit/packager/lib/plugin/notify-plugin')
const
Css2jsonPlugin
=
require
(
'
@hap-toolkit/dsl-vue/lib/plugin/css2json-plugin
'
)
const
InstVuePlugin
=
require
(
'
@hap-toolkit/dsl-vue/lib/plugin/instvue-plugin
'
)
const
InstMainPlugin
=
require
(
'
./plugin/main-plugin
'
)
const
parseManifest
=
require
(
'
./manifest/index
'
)
const
env
=
{
...
...
@@ -46,6 +48,15 @@ module.exports = {
externals
:
{
vue
:
'
Vue
'
},
module
:
{
rules
:
[{
//暂不考虑ts
test
:
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
'
main.js
'
),
use
:
[{
loader
:
path
.
resolve
(
__dirname
,
'
loader/main-loader
'
)
}]
}]
},
plugins
:
[
new
webpack
.
DefinePlugin
({
// 平台:na
...
...
@@ -63,6 +74,7 @@ module.exports = {
new
HandlerPlugin
({}),
new
Css2jsonPlugin
(),
new
InstVuePlugin
(),
new
InstMainPlugin
(),
new
ZipPlugin
({
name
:
manifest
.
package
,
icon
:
manifest
.
icon
,
...
...
packages/uni-quickapp/lib/loader/
app
-loader.js
→
packages/uni-quickapp/lib/loader/
main
-loader.js
浏览文件 @
bc93fd44
//import uni-pages
//解析main.js中全局组件?
module
.
exports
=
function
(
source
,
map
)
{
return
`
import 'uni-pages';
${
source
}
export default App;
`
}
packages/uni-quickapp/lib/manifest/entry-parser.js
浏览文件 @
bc93fd44
const
path
=
require
(
'
path
'
)
module
.
exports
=
function
parseEntry
(
pages
)
{
const
entry
=
{
'
app
'
:
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
'
App.vue?uxType=app
'
)
'
app
'
:
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
'
main.js
'
)
}
pages
.
forEach
(
page
=>
{
entry
[
page
.
path
]
=
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
page
.
path
+
'
.vue?uxType=page
'
)
...
...
packages/uni-quickapp/lib/plugin/main-plugin.js
0 → 100644
浏览文件 @
bc93fd44
const
WebpackSources
=
require
(
'
webpack-sources
'
)
class
InstMainPlugin
{
apply
(
compiler
)
{
compiler
.
hooks
.
compilation
.
tap
(
'
InstMainPlugin
'
,
(
compilation
)
=>
{
compilation
.
hooks
.
optimizeChunkAssets
.
tapAsync
(
'
InstMainPlugin
'
,
(
chunks
,
callback
)
=>
{
if
(
chunks
.
find
(
chunk
=>
chunk
.
files
.
includes
(
'
app.js
'
)))
{
const
appAsset
=
compilation
.
assets
[
'
app.js
'
]
compilation
.
assets
[
'
app.js
'
]
=
new
WebpackSources
.
ConcatSource
(
`(function(){\n var handler = function() {\n return `
,
appAsset
,
`\n };\n if (typeof window === "undefined") {\n let options = handler();\n options.default['manifest'] =
${
JSON
.
stringify
(
global
.
framework
.
manifest
)}
\n $app_define$(options.default)\n $app_bootstrap$()\n }\n })();`
)
}
callback
()
})
})
}
}
module
.
exports
=
InstMainPlugin
src/platforms/quickapp/service/framework/vue.js
浏览文件 @
bc93fd44
// 目前仅支持 store, use, mixin, component
// 目前仅支持 store, use, mixin, component
, prototype
let
store
const
mixins
=
[]
const
plugins
=
[]
const
components
=
[]
// fake
function
Vue
(
options
)
{
if
(
options
&&
options
.
store
)
{
store
=
options
.
store
}
}
Vue
.
prototype
.
$mount
=
function
()
{}
Vue
.
config
=
{}
Vue
.
use
=
function
(
plugin
)
{
plugins
.
push
(
plugin
)
}
...
...
@@ -29,23 +34,29 @@ Vue.component = function (id, definition) {
const
injectRef
=
Object
.
getPrototypeOf
(
global
)
||
global
injectRef
.
__VuePlugin
=
{
install
(
Vue
,
options
)
{
install
(
PageVue
,
options
)
{
mixins
.
forEach
(
mixin
=>
{
Vue
.
mixin
(
mixin
)
Page
Vue
.
mixin
(
mixin
)
})
plugins
.
forEach
(
plugin
=>
{
Vue
.
use
(
plugin
)
Page
Vue
.
use
(
plugin
)
})
components
.
forEach
(({
id
,
definition
})
=>
{
Vue
.
component
(
id
,
definition
)
PageVue
.
component
(
id
,
definition
)
})
Object
.
keys
(
Vue
.
prototype
).
forEach
(
name
=>
{
if
(
name
!==
'
$mount
'
)
{
PageVue
.
prototype
[
name
]
=
Vue
.
prototype
[
name
]
}
})
store
&&
(
Vue
.
prototype
.
$store
=
store
)
store
&&
(
Page
Vue
.
prototype
.
$store
=
store
)
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录