Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
genary
uni-app
提交
c9d0e2f1
U
uni-app
项目概览
genary
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
c9d0e2f1
编写于
9月 28, 2022
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
wip(uts): compiler
上级
793ae947
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
135 addition
and
134 deletion
+135
-134
packages/uni-cli-shared/src/uni_modules.ts
packages/uni-cli-shared/src/uni_modules.ts
+134
-0
packages/uni-cli-shared/src/vite/plugins/uniModules.ts
packages/uni-cli-shared/src/vite/plugins/uniModules.ts
+1
-134
packages/uts-darwin-arm64/uts.darwin-arm64.node
packages/uts-darwin-arm64/uts.darwin-arm64.node
+0
-0
packages/uts-darwin-x64/uts.darwin-x64.node
packages/uts-darwin-x64/uts.darwin-x64.node
+0
-0
packages/uts-win32-ia32-msvc/uts.win32-ia32-msvc.node
packages/uts-win32-ia32-msvc/uts.win32-ia32-msvc.node
+0
-0
packages/uts-win32-x64-msvc/uts.win32-x64-msvc.node
packages/uts-win32-x64-msvc/uts.win32-x64-msvc.node
+0
-0
未找到文件。
packages/uni-cli-shared/src/uni_modules.ts
0 → 100644
浏览文件 @
c9d0e2f1
import
path
from
'
path
'
import
fs
from
'
fs-extra
'
import
{
isArray
,
isPlainObject
,
isString
}
from
'
@vue/shared
'
import
{
recursive
}
from
'
merge
'
import
{
parseJson
}
from
'
./json
'
type
Define
=
string
|
string
[]
|
Record
<
string
,
string
>
type
Defines
=
{
[
name
:
string
]:
Define
}
interface
Exports
{
[
name
:
string
]:
Define
|
Defines
|
false
}
export
function
genUniModulesExports
()
{
const
uniModulesDir
=
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
'
uni_modules
'
)
if
(
!
fs
.
existsSync
(
uniModulesDir
))
{
return
''
}
const
importCodes
:
string
[]
=
[]
const
assignCodes
:
string
[]
=
[]
fs
.
readdirSync
(
uniModulesDir
).
forEach
((
uniModuleDir
)
=>
{
const
pkgPath
=
path
.
resolve
(
uniModulesDir
,
uniModuleDir
,
'
package.json
'
)
if
(
!
fs
.
existsSync
(
pkgPath
))
{
return
}
const
exports
=
parseJson
(
fs
.
readFileSync
(
pkgPath
,
'
utf8
'
))?.
uni_modules
?.
exports
as
Exports
|
undefined
if
(
exports
)
{
const
[
exportsImportCodes
,
exportsAssignCodes
]
=
parseExports
(
process
.
env
.
UNI_PLATFORM
===
'
h5
'
?
'
web
'
:
process
.
env
.
UNI_PLATFORM
,
`@/uni_modules/
${
uniModuleDir
}
`
,
exports
)
importCodes
.
push
(...
exportsImportCodes
)
assignCodes
.
push
(...
exportsAssignCodes
)
}
})
if
(
!
importCodes
.
length
)
{
return
''
}
return
`
${
importCodes
.
join
(
'
\n
'
)}
${
assignCodes
.
join
(
'
\n
'
)}
`
}
export
function
parseExports
(
platform
:
UniApp
.
PLATFORM
,
source
:
string
,
exports
:
Exports
=
{}
):
[
string
[],
string
[]]
{
const
rootDefines
:
Defines
=
{}
Object
.
keys
(
exports
).
forEach
((
name
)
=>
{
if
(
name
.
startsWith
(
'
uni
'
))
{
rootDefines
[
name
]
=
exports
[
name
]
as
Define
}
})
const
platformDefines
=
exports
[
platform
]
as
false
|
Defines
// 该平台不支持
if
(
platformDefines
===
false
)
{
return
[[],
[]]
}
return
parseDefines
(
source
,
recursive
(
true
,
rootDefines
,
platformDefines
))
}
export
function
parseDefines
(
source
:
string
,
defines
:
Defines
=
{}
):
[
string
[],
string
[]]
{
const
importCodes
:
string
[]
=
[]
const
assignCodes
:
string
[]
=
[]
Object
.
keys
(
defines
).
forEach
((
name
)
=>
{
const
[
defineImportCodes
,
defineAssignCodes
]
=
parseDefine
(
source
,
name
,
defines
[
name
]
)
importCodes
.
push
(...
defineImportCodes
)
assignCodes
.
push
(...
defineAssignCodes
)
})
return
[
importCodes
,
assignCodes
]
}
/**
* uni:'getBatteryInfo'
* import getBatteryInfo from '..'
*
* uni:['getBatteryInfo']
* import { getBatteryInfo } from '..'
*
* uni:['openLocation','chooseLocation']
* import { openLocation, chooseLocation } from '..'
*
* uni:{
* onUserCaptureScreen: "onCaptureScreen"
* offUserCaptureScreen: "offCaptureScreen"
* }
*
* uni.getBatteryInfo = getBatteryInfo
* @param source
* @param globalObject
* @param define
* @returns
*/
function
parseDefine
(
source
:
string
,
globalObject
:
string
,
define
:
Define
):
[
string
[],
string
[]]
{
const
importCodes
:
string
[]
=
[]
const
assignCodes
:
string
[]
=
[]
if
(
isString
(
define
))
{
importCodes
.
push
(
`import
${
define
}
from '
${
source
}
'`
)
assignCodes
.
push
(
`
${
globalObject
}
.
${
define
}
=
${
define
}
`
)
}
else
if
(
isArray
(
define
))
{
importCodes
.
push
(
`import {
${
define
.
join
(
'
,
'
)}
} from '
${
source
}
'`
)
define
.
forEach
((
d
)
=>
{
assignCodes
.
push
(
`
${
globalObject
}
.
${
d
}
=
${
d
}
`
)
})
}
else
if
(
isPlainObject
(
define
))
{
const
keys
=
Object
.
keys
(
define
)
const
specifiers
:
string
[]
=
[]
keys
.
forEach
((
d
)
=>
{
if
(
d
!==
define
[
d
])
{
specifiers
.
push
(
`
${
define
[
d
]}
as
${
d
}
`
)
}
else
{
specifiers
.
push
(
d
)
}
assignCodes
.
push
(
`
${
globalObject
}
.
${
d
}
=
${
d
}
`
)
})
importCodes
.
push
(
`import {
${
specifiers
.
join
(
'
,
'
)}
} from '
${
source
}
'`
)
}
return
[
importCodes
,
assignCodes
]
}
packages/uni-cli-shared/src/vite/plugins/uniModules.ts
浏览文件 @
c9d0e2f1
import
path
from
'
path
'
import
fs
from
'
fs-extra
'
import
type
{
Plugin
}
from
'
vite
'
import
{
recursive
}
from
'
merge
'
import
{
isArray
,
isPlainObject
,
isString
}
from
'
@vue/shared
'
import
{
UNI_MODULES_EXPORTS
}
from
'
../../constants
'
import
{
parseJson
}
from
'
../../json
'
import
{
genUniModulesExports
}
from
'
../../uni_modules
'
export
function
uniModulesExportsPlugin
({
enable
,
...
...
@@ -30,132 +26,3 @@ export function uniModulesExportsPlugin({
},
}
}
type
Define
=
string
|
string
[]
|
Record
<
string
,
string
>
type
Defines
=
{
[
name
:
string
]:
Define
}
interface
Exports
{
[
name
:
string
]:
Define
|
Defines
|
false
}
function
genUniModulesExports
()
{
const
uniModulesDir
=
path
.
resolve
(
process
.
env
.
UNI_INPUT_DIR
,
'
uni_modules
'
)
if
(
!
fs
.
existsSync
(
uniModulesDir
))
{
return
''
}
const
importCodes
:
string
[]
=
[]
const
assignCodes
:
string
[]
=
[]
fs
.
readdirSync
(
uniModulesDir
).
forEach
((
uniModuleDir
)
=>
{
const
pkgPath
=
path
.
resolve
(
uniModulesDir
,
uniModuleDir
,
'
package.json
'
)
if
(
!
fs
.
existsSync
(
pkgPath
))
{
return
}
const
exports
=
parseJson
(
fs
.
readFileSync
(
pkgPath
,
'
utf8
'
))?.
uni_modules
?.
exports
as
Exports
|
undefined
if
(
exports
)
{
const
[
exportsImportCodes
,
exportsAssignCodes
]
=
parseExports
(
process
.
env
.
UNI_PLATFORM
===
'
h5
'
?
'
web
'
:
process
.
env
.
UNI_PLATFORM
,
`@/uni_modules/
${
uniModuleDir
}
`
,
exports
)
importCodes
.
push
(...
exportsImportCodes
)
assignCodes
.
push
(...
exportsAssignCodes
)
}
})
if
(
!
importCodes
.
length
)
{
return
''
}
return
`
${
importCodes
.
join
(
'
\n
'
)}
${
assignCodes
.
join
(
'
\n
'
)}
`
}
export
function
parseExports
(
platform
:
UniApp
.
PLATFORM
,
source
:
string
,
exports
:
Exports
=
{}
):
[
string
[],
string
[]]
{
const
rootDefines
:
Defines
=
{}
Object
.
keys
(
exports
).
forEach
((
name
)
=>
{
if
(
name
.
startsWith
(
'
uni
'
))
{
rootDefines
[
name
]
=
exports
[
name
]
as
Define
}
})
const
platformDefines
=
exports
[
platform
]
as
false
|
Defines
// 该平台不支持
if
(
platformDefines
===
false
)
{
return
[[],
[]]
}
return
parseDefines
(
source
,
recursive
(
true
,
rootDefines
,
platformDefines
))
}
export
function
parseDefines
(
source
:
string
,
defines
:
Defines
=
{}
):
[
string
[],
string
[]]
{
const
importCodes
:
string
[]
=
[]
const
assignCodes
:
string
[]
=
[]
Object
.
keys
(
defines
).
forEach
((
name
)
=>
{
const
[
defineImportCodes
,
defineAssignCodes
]
=
parseDefine
(
source
,
name
,
defines
[
name
]
)
importCodes
.
push
(...
defineImportCodes
)
assignCodes
.
push
(...
defineAssignCodes
)
})
return
[
importCodes
,
assignCodes
]
}
/**
* uni:'getBatteryInfo'
* import getBatteryInfo from '..'
*
* uni:['getBatteryInfo']
* import { getBatteryInfo } from '..'
*
* uni:['openLocation','chooseLocation']
* import { openLocation, chooseLocation } from '..'
*
* uni:{
* onUserCaptureScreen: "onCaptureScreen"
* offUserCaptureScreen: "offCaptureScreen"
* }
*
* uni.getBatteryInfo = getBatteryInfo
* @param source
* @param globalObject
* @param define
* @returns
*/
function
parseDefine
(
source
:
string
,
globalObject
:
string
,
define
:
Define
):
[
string
[],
string
[]]
{
const
importCodes
:
string
[]
=
[]
const
assignCodes
:
string
[]
=
[]
if
(
isString
(
define
))
{
importCodes
.
push
(
`import
${
define
}
from '
${
source
}
'`
)
assignCodes
.
push
(
`
${
globalObject
}
.
${
define
}
=
${
define
}
`
)
}
else
if
(
isArray
(
define
))
{
importCodes
.
push
(
`import {
${
define
.
join
(
'
,
'
)}
} from '
${
source
}
'`
)
define
.
forEach
((
d
)
=>
{
assignCodes
.
push
(
`
${
globalObject
}
.
${
d
}
=
${
d
}
`
)
})
}
else
if
(
isPlainObject
(
define
))
{
const
keys
=
Object
.
keys
(
define
)
const
specifiers
:
string
[]
=
[]
keys
.
forEach
((
d
)
=>
{
if
(
d
!==
define
[
d
])
{
specifiers
.
push
(
`
${
define
[
d
]}
as
${
d
}
`
)
}
else
{
specifiers
.
push
(
d
)
}
assignCodes
.
push
(
`
${
globalObject
}
.
${
d
}
=
${
d
}
`
)
})
importCodes
.
push
(
`import {
${
specifiers
.
join
(
'
,
'
)}
} from '
${
source
}
'`
)
}
return
[
importCodes
,
assignCodes
]
}
packages/uts-darwin-arm64/uts.darwin-arm64.node
浏览文件 @
c9d0e2f1
无法预览此类型文件
packages/uts-darwin-x64/uts.darwin-x64.node
浏览文件 @
c9d0e2f1
无法预览此类型文件
packages/uts-win32-ia32-msvc/uts.win32-ia32-msvc.node
浏览文件 @
c9d0e2f1
无法预览此类型文件
packages/uts-win32-x64-msvc/uts.win32-x64-msvc.node
浏览文件 @
c9d0e2f1
无法预览此类型文件
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录