Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
erosXXX
uni-app
提交
c265a947
U
uni-app
项目概览
erosXXX
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c265a947
编写于
10月 29, 2021
作者:
D
DCloud_LXH
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(mp): mp-weixin、mp-alipay 支持导出到插件
上级
5bdc3651
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
52 addition
and
38 deletion
+52
-38
packages/uni-mp-alipay/lib/uni.config.js
packages/uni-mp-alipay/lib/uni.config.js
+7
-5
packages/uni-mp-weixin/lib/uni.config.js
packages/uni-mp-weixin/lib/uni.config.js
+7
-5
packages/vue-cli-plugin-uni/lib/env.js
packages/vue-cli-plugin-uni/lib/env.js
+3
-0
packages/vue-cli-plugin-uni/lib/mp/index.js
packages/vue-cli-plugin-uni/lib/mp/index.js
+15
-8
packages/webpack-uni-mp-loader/lib/plugin/index-new.js
packages/webpack-uni-mp-loader/lib/plugin/index-new.js
+20
-20
未找到文件。
packages/uni-mp-alipay/lib/uni.config.js
浏览文件 @
c265a947
...
...
@@ -25,12 +25,14 @@ module.exports = {
copyOptions
.
push
(
'
uni_modules/
'
+
module
+
'
/mycomponents
'
)
})
if
(
process
.
env
.
UNI_MP_PLUGIN
)
{
copyOptions
.
push
({
from
:
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
'
plugin.json
'
),
transform
:
content
=>
JSON
.
stringify
(
parseJson
(
content
.
toString
(),
true
))
JSON
.
parse
(
process
.
env
.
UNI_MP_PLUGIN_EXPORT
)
.
concat
(
process
.
env
.
UNI_MP_PLUGIN
?
'
plugin.json
'
:
undefined
)
.
forEach
(
fileName
=>
{
fileName
&&
copyOptions
.
push
({
from
:
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
fileName
),
transform
:
content
=>
fileName
===
'
plugin.json
'
?
JSON
.
stringify
(
parseJson
(
content
.
toString
(),
true
))
:
content
})
})
}
return
copyOptions
}
...
...
packages/uni-mp-weixin/lib/uni.config.js
浏览文件 @
c265a947
...
...
@@ -32,12 +32,14 @@ module.exports = {
'
functional-pages
'
]
if
(
process
.
env
.
UNI_MP_PLUGIN
)
{
copyOptions
.
push
({
from
:
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
'
plugin.json
'
),
transform
:
content
=>
JSON
.
stringify
(
parseJson
(
content
.
toString
(),
true
))
JSON
.
parse
(
process
.
env
.
UNI_MP_PLUGIN_EXPORT
)
.
concat
(
process
.
env
.
UNI_MP_PLUGIN
?
'
plugin.json
'
:
undefined
)
.
forEach
(
fileName
=>
{
fileName
&&
copyOptions
.
push
({
from
:
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
fileName
),
transform
:
content
=>
fileName
===
'
plugin.json
'
?
JSON
.
stringify
(
parseJson
(
content
.
toString
(),
true
))
:
content
})
})
}
const
workers
=
platformOptions
.
workers
workers
&&
copyOptions
.
push
(
workers
)
...
...
packages/vue-cli-plugin-uni/lib/env.js
浏览文件 @
c265a947
...
...
@@ -49,6 +49,9 @@ process.env.UNI_USING_V3_SCOPED = true
process
.
env
.
UNI_CLOUD_PROVIDER
=
JSON
.
stringify
([])
// 导出到小程序插件
process
.
env
.
UNI_MP_PLUGIN_EXPORT
=
JSON
.
stringify
(
Object
.
keys
(
platformOptions
.
plugins
||
{}).
map
(
pluginName
=>
platformOptions
.
plugins
[
pluginName
].
export
))
const
isH5
=
!
process
.
env
.
UNI_SUB_PLATFORM
&&
process
.
env
.
UNI_PLATFORM
===
'
h5
'
const
isProduction
=
process
.
env
.
NODE_ENV
===
'
production
'
...
...
packages/vue-cli-plugin-uni/lib/mp/index.js
浏览文件 @
c265a947
...
...
@@ -138,6 +138,10 @@ function initSubpackageConfig (webpackConfig, vueOptions) {
webpackConfig
.
output
.
jsonpFunction
(
'
webpackJsonp_
'
+
(
process
.
env
.
UNI_SUBPACKGE
||
process
.
env
.
UNI_MP_PLUGIN
))
}
function
addToUniEntry
(
fileName
)
{
fileName
&&
(
process
.
UNI_ENTRY
[
fileName
.
split
(
'
.
'
)[
0
]]
=
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
fileName
))
}
module
.
exports
=
{
vueConfig
:
{
parallel
:
false
...
...
@@ -171,18 +175,21 @@ module.exports = {
plugins
.
push
(
new
PreprocessAssetsPlugin
())
}
if
(
process
.
env
.
UNI_MP_PLUGIN
)
{
// 小程序插件入口使用
// packages\webpack-uni-mp-loader\lib\plugin\index-new.js -> addMPPluginRequire
beforeCode
+=
`
${
process
.
env
.
UNI_PLATFORM
===
'
mp-alipay
'
?
'
my
'
:
'
wx
'
}
.__webpack_require_
${
process
.
env
.
UNI_MP_PLUGIN
.
replace
(
/-/g
,
'
_
'
)}
__ = __webpack_require__;`
{
const
globalEnv
=
process
.
env
.
UNI_PLATFORM
===
'
mp-alipay
'
?
'
my
'
:
'
wx
'
if
(
process
.
env
.
UNI_MP_PLUGIN
)
{
// 小程序插件入口使用
// packages\webpack-uni-mp-loader\lib\plugin\index-new.js -> addMPPluginRequire
addToUniEntry
(
process
.
env
.
UNI_MP_PLUGIN_MAIN
)
const
UNI_MP_PLUGIN_MAIN
=
process
.
env
.
UNI_MP_PLUGIN_MAIN
if
(
UNI_MP_PLUGIN_MAIN
)
{
process
.
UNI_ENTRY
[
UNI_MP_PLUGIN_MAIN
.
split
(
'
.
'
)[
0
]]
=
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
UNI_MP_PLUGIN_MAIN
)
beforeCode
+=
`
${
globalEnv
}
.__webpack_require_
${
process
.
env
.
UNI_MP_PLUGIN
.
replace
(
/-/g
,
'
_
'
)}
__ = __webpack_require__;`
}
else
{
beforeCode
+=
`
${
globalEnv
}
.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;`
}
}
JSON
.
parse
(
process
.
env
.
UNI_MP_PLUGIN_EXPORT
).
forEach
(
fileName
=>
addToUniEntry
(
fileName
))
const
alias
=
{
// 仅 mp-weixin
'
mpvue-page-factory
'
:
require
.
resolve
(
'
@dcloudio/vue-cli-plugin-uni/packages/mpvue-page-factory
'
)
...
...
packages/webpack-uni-mp-loader/lib/plugin/index-new.js
浏览文件 @
c265a947
...
...
@@ -67,33 +67,33 @@ function addSubPackagesRequire (compilation) {
function
addMPPluginRequire
(
compilation
)
{
// 编译到小程序插件 特殊处理入口文件
if
(
process
.
env
.
UNI_MP_PLUGIN
)
{
const
assetsKeys
=
Object
.
keys
(
compilation
.
assets
)
assetsKeys
.
forEach
(
name
=>
{
if
(
name
===
process
.
env
.
UNI_MP_PLUGIN_MAIN
)
{
const
modules
=
compilation
.
modules
const
assetsKeys
=
Object
.
keys
(
compilation
.
assets
)
const
UNI_MP_PLUGIN_MAIN
=
process
.
env
.
UNI_MP_PLUGIN_MAIN
const
UNI_MP_PLUGIN_EXPORT
=
JSON
.
parse
(
process
.
env
.
UNI_MP_PLUGIN_EXPORT
)
assetsKeys
.
forEach
(
name
=>
{
if
((
name
===
UNI_MP_PLUGIN_MAIN
&&
process
.
env
.
UNI_MP_PLUGIN
)
||
UNI_MP_PLUGIN_EXPORT
.
includes
(
name
))
{
const
modules
=
compilation
.
modules
const
mainFilePath
=
normalizePath
(
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
process
.
env
.
UNI_MP_PLUGIN_MAIN
))
const
filePath
=
normalizePath
(
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
name
))
const
uniModuleId
=
modules
.
find
(
module
=>
module
.
resource
&&
normalizePath
(
module
.
resource
)
===
mainF
ilePath
).
id
const
uniModuleId
=
modules
.
find
(
module
=>
module
.
resource
&&
normalizePath
(
module
.
resource
)
===
f
ilePath
).
id
const
newlineIndex
=
compilation
.
assets
[
name
].
source
().
lastIndexOf
(
'
\n
'
)
const
newlineIndex
=
compilation
.
assets
[
name
].
source
().
lastIndexOf
(
'
\n
'
)
const
source
=
compilation
.
assets
[
name
].
source
().
substring
(
0
,
newlineIndex
)
+
`\nmodule.exports =
${
process
.
env
.
UNI_PLATFORM
===
'
mp-alipay
'
?
'
my
'
:
'
wx
'
}
.__webpack_require_
${
process
.
env
.
UNI_MP_PLUGIN
.
replace
(
/-/g
,
'
_
'
)}
__('
${
uniModuleId
}
');\n`
+
compilation
.
assets
[
name
].
source
().
substring
(
newlineIndex
+
1
)
const
source
=
compilation
.
assets
[
name
].
source
().
substring
(
0
,
newlineIndex
)
+
`\nmodule.exports =
${
process
.
env
.
UNI_PLATFORM
===
'
mp-alipay
'
?
'
my
'
:
'
wx
'
}
.__webpack_require_
${(
process
.
env
.
UNI_MP_PLUGIN
||
'
UNI_MP_PLUGIN
'
)
.
replace
(
/-/g
,
'
_
'
)}
__('
${
uniModuleId
}
');\n`
+
compilation
.
assets
[
name
].
source
().
substring
(
newlineIndex
+
1
)
compilation
.
assets
[
name
]
=
{
size
()
{
return
Buffer
.
byteLength
(
source
,
'
utf8
'
)
},
source
()
{
return
source
}
compilation
.
assets
[
name
]
=
{
size
()
{
return
Buffer
.
byteLength
(
source
,
'
utf8
'
)
},
source
()
{
return
source
}
}
}
)
}
}
}
)
}
class
WebpackUniMPPlugin
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录