Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
MuGuiLin
uni-app
提交
4828c8b7
U
uni-app
项目概览
MuGuiLin
/
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,发现更多精彩内容 >>
提交
4828c8b7
编写于
2月 14, 2022
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
wip(app): nvue
上级
1f59921b
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
63 addition
and
36 deletion
+63
-36
packages/shims-node.d.ts
packages/shims-node.d.ts
+1
-1
packages/uni-app-vite/src/index.ts
packages/uni-app-vite/src/index.ts
+4
-1
packages/uni-app-vite/src/nvue/index.ts
packages/uni-app-vite/src/nvue/index.ts
+6
-6
packages/uni-app-vite/src/nvue/plugin/index.ts
packages/uni-app-vite/src/nvue/plugin/index.ts
+6
-2
packages/uni-app-vite/src/nvue/plugins/esbuild.ts
packages/uni-app-vite/src/nvue/plugins/esbuild.ts
+5
-5
packages/uni-app-vite/src/nvue/plugins/mainJs.ts
packages/uni-app-vite/src/nvue/plugins/mainJs.ts
+2
-2
packages/uni-app-vite/src/nvue/plugins/pagesJson.ts
packages/uni-app-vite/src/nvue/plugins/pagesJson.ts
+6
-2
packages/uni-app-vite/src/plugin/build.ts
packages/uni-app-vite/src/plugin/build.ts
+10
-4
packages/uni-app-vite/src/plugin/index.ts
packages/uni-app-vite/src/plugin/index.ts
+12
-6
packages/uni-app-vite/src/utils.ts
packages/uni-app-vite/src/utils.ts
+5
-2
packages/vite-plugin-uni/src/cli/build.ts
packages/vite-plugin-uni/src/cli/build.ts
+2
-2
packages/vite-plugin-uni/src/index.ts
packages/vite-plugin-uni/src/index.ts
+4
-3
未找到文件。
packages/shims-node.d.ts
浏览文件 @
4828c8b7
...
...
@@ -27,6 +27,6 @@ declare namespace NodeJS {
UNI_CUSTOM_CONTEXT
?:
string
UNI_MINIMIZE
?:
'
true
'
UNI_COMPILER
:
'
vue
'
|
'
nvue
'
UNI_
COMPILER_NVUE
:
'
app
'
|
'
page
'
UNI_
RENDERER_NATIVE
:
'
appService
'
|
'
pages
'
}
}
packages/uni-app-vite/src/index.ts
浏览文件 @
4828c8b7
...
...
@@ -3,7 +3,10 @@ import { initNVuePlugins } from './nvue'
import
{
uniAppPlugin
}
from
'
./plugin
'
export
default
()
=>
{
return
[
uniAppPlugin
({
renderer
:
process
.
env
.
UNI_RENDERER
}),
uniAppPlugin
({
renderer
:
process
.
env
.
UNI_RENDERER
,
appService
:
process
.
env
.
UNI_RENDERER_NATIVE
===
'
appService
'
,
}),
...(
process
.
env
.
UNI_COMPILER
===
'
nvue
'
?
initNVuePlugins
()
:
initVuePlugins
()),
...
...
packages/uni-app-vite/src/nvue/index.ts
浏览文件 @
4828c8b7
...
...
@@ -18,17 +18,17 @@ export { initNVueNodeTransforms } from './plugin'
export
function
initNVuePlugins
()
{
const
renderer
=
process
.
env
.
UNI_RENDERER
const
app
=
process
.
env
.
UNI_COMPILER_NVUE
===
'
app
'
const
app
Service
=
process
.
env
.
UNI_RENDERER_NATIVE
===
'
appService
'
return
[
uniAppCssPlugin
(),
uniEasycomPlugin
({
exclude
:
UNI_EASYCOM_EXCLUDE
}),
uniHBuilderXConsolePlugin
(),
uniMainJsPlugin
({
app
}),
...(
app
?
[
uniManifestJsonPlugin
()]
:
[]),
uniPagesJsonPlugin
({
app
}),
uniMainJsPlugin
({
app
Service
}),
...(
app
Service
?
[
uniManifestJsonPlugin
()]
:
[]),
uniPagesJsonPlugin
({
app
Service
}),
uniViteInjectPlugin
(
'
uni:app-inject
'
,
initAppProvide
()),
uniStatsPlugin
(),
uniAppNVuePlugin
(),
uniEsbuildPlugin
({
renderer
,
app
}),
uniAppNVuePlugin
(
{
appService
}
),
uniEsbuildPlugin
({
renderer
,
app
Service
}),
]
}
packages/uni-app-vite/src/nvue/plugin/index.ts
浏览文件 @
4828c8b7
...
...
@@ -45,7 +45,11 @@ export function initNVueNodeTransforms() {
]
}
export
function
uniAppNVuePlugin
():
Plugin
{
export
function
uniAppNVuePlugin
({
appService
,
}:
{
appService
:
boolean
}):
Plugin
{
const
inputDir
=
process
.
env
.
UNI_INPUT_DIR
const
mainPath
=
resolveMainPathOnce
(
inputDir
)
return
{
...
...
@@ -67,7 +71,7 @@ export function uniAppNVuePlugin(): Plugin {
entry
:
mainPath
,
formats
:
[
'
es
'
],
},
outDir
:
nvueOutDir
(),
outDir
:
nvueOutDir
(
appService
),
rollupOptions
:
{
external
,
output
:
{
...
...
packages/uni-app-vite/src/nvue/plugins/esbuild.ts
浏览文件 @
4828c8b7
...
...
@@ -18,10 +18,10 @@ const debugEsbuild = debug('uni:app-nvue-esbuild')
export
function
uniEsbuildPlugin
({
renderer
,
app
,
app
Service
,
}:
{
renderer
?:
'
native
'
app
:
boolean
app
Service
:
boolean
}):
Plugin
{
let
buildOptions
:
BuildOptions
const
outputDir
=
process
.
env
.
UNI_OUTPUT_DIR
...
...
@@ -52,7 +52,7 @@ export function uniEsbuildPlugin({
entryPoints
.
push
(
name
)
}
})
if
(
app
)
{
if
(
app
Service
)
{
debugEsbuild
(
'
start
'
,
APP_SERVICE_FILENAME
)
await
buildNVueAppService
(
buildOptions
).
then
((
code
)
=>
{
return
fs
.
outputFile
(
...
...
@@ -75,7 +75,7 @@ export function uniEsbuildPlugin({
function
buildNVueAppService
(
options
:
BuildOptions
)
{
return
transformWithEsbuild
(
`import './app.js'`
,
path
.
join
(
nvueOutDir
(),
'
main.js
'
),
path
.
join
(
nvueOutDir
(
true
),
'
main.js
'
),
options
).
then
((
res
)
=>
{
if
(
res
.
outputFiles
)
{
...
...
@@ -106,7 +106,7 @@ App.mpType = 'page'
const app = Vue.createApp(App,{$store:getApp().$store,__pageId,__pagePath,__pageQuery})
app.provide('__globalStyles', Vue.useCssStyles([...AppStyles, ...(App.styles||[])]))
app.mount('#root')`
,
path
.
join
(
nvueOutDir
(),
'
main.js
'
),
path
.
join
(
nvueOutDir
(
false
),
'
main.js
'
),
options
).
then
((
res
)
=>
{
if
(
res
.
outputFiles
)
{
...
...
packages/uni-app-vite/src/nvue/plugins/mainJs.ts
浏览文件 @
4828c8b7
import
{
defineUniMainJsPlugin
,
PAGES_JSON_JS
}
from
'
@dcloudio/uni-cli-shared
'
import
{
APP_CSS_JS
}
from
'
./appCss
'
export
function
uniMainJsPlugin
({
app
}:
{
app
:
boolean
})
{
export
function
uniMainJsPlugin
({
app
Service
}:
{
appService
:
boolean
})
{
return
defineUniMainJsPlugin
((
opts
)
=>
{
return
{
name
:
'
uni:app-nvue-main-js
'
,
enforce
:
'
pre
'
,
transform
(
code
,
id
)
{
if
(
opts
.
filter
(
id
))
{
if
(
app
)
{
if
(
app
Service
)
{
code
=
code
.
includes
(
'
createSSRApp
'
)
?
createApp
(
code
)
:
createLegacyApp
(
code
)
...
...
packages/uni-app-vite/src/nvue/plugins/pagesJson.ts
浏览文件 @
4828c8b7
...
...
@@ -11,7 +11,11 @@ import {
MANIFEST_JSON_JS
,
}
from
'
@dcloudio/uni-cli-shared
'
export
function
uniPagesJsonPlugin
({
app
}:
{
app
:
boolean
}):
Plugin
{
export
function
uniPagesJsonPlugin
({
appService
,
}:
{
appService
:
boolean
}):
Plugin
{
return
defineUniPagesJsonPlugin
((
opts
)
=>
{
return
{
name
:
'
uni:app-nvue-pages-json
'
,
...
...
@@ -34,7 +38,7 @@ export function uniPagesJsonPlugin({ app }: { app: boolean }): Plugin {
)
}
})
if
(
app
)
{
if
(
app
Service
)
{
this
.
emitFile
({
fileName
:
`app-config-service.js`
,
type
:
'
asset
'
,
...
...
packages/uni-app-vite/src/plugin/build.ts
浏览文件 @
4828c8b7
...
...
@@ -11,7 +11,10 @@ import {
import
{
nvueOutDir
}
from
'
../utils
'
export
function
buildOptions
(
renderer
:
'
native
'
|
undefined
,
{
appService
,
renderer
,
}:
{
renderer
:
'
native
'
|
undefined
;
appService
:
boolean
},
userConfig
:
UserConfig
,
_
:
ConfigEnv
):
UserConfig
[
'
build
'
]
{
...
...
@@ -19,7 +22,7 @@ export function buildOptions(
const
outputDir
=
process
.
env
.
UNI_OUTPUT_DIR
// 开始编译时,清空输出目录
function
emptyNVueDir
()
{
const
nvueOutputDir
=
nvueOutDir
()
const
nvueOutputDir
=
nvueOutDir
(
false
)
if
(
fs
.
existsSync
(
nvueOutputDir
))
{
emptyDir
(
nvueOutputDir
)
}
...
...
@@ -30,8 +33,11 @@ export function buildOptions(
}
}
if
(
renderer
===
'
native
'
)
{
emptyNVueDir
()
emptyOutDir
()
if
(
appService
)
{
// 仅编译 main.js+App.vue 的时候才清空
emptyNVueDir
()
emptyOutDir
()
}
}
else
{
if
(
isInHybridNVue
(
userConfig
))
{
emptyNVueDir
()
...
...
packages/uni-app-vite/src/plugin/index.ts
浏览文件 @
4828c8b7
...
...
@@ -3,17 +3,23 @@ import { UniVitePlugin } from '@dcloudio/uni-cli-shared'
import
{
uniOptions
}
from
'
./uni
'
import
{
buildOptions
}
from
'
./build
'
export
function
uniAppPlugin
({
renderer
,
}:
{
renderer
?:
'
native
'
}
=
{}):
UniVitePlugin
{
export
function
uniAppPlugin
(
{
renderer
,
appService
,
}:
{
renderer
?:
'
native
'
appService
:
boolean
}
=
{
appService
:
false
,
}
):
UniVitePlugin
{
return
{
name
:
'
uni:app
'
,
uni
:
uniOptions
(),
config
(
config
,
env
)
{
return
{
build
:
buildOptions
(
renderer
,
config
,
env
),
build
:
buildOptions
(
{
renderer
,
appService
}
,
config
,
env
),
}
},
}
...
...
packages/uni-app-vite/src/utils.ts
浏览文件 @
4828c8b7
import
path
from
'
path
'
export
const
templateDir
=
path
.
resolve
(
__dirname
,
'
../lib/template/
'
)
export
function
nvueOutDir
()
{
return
path
.
join
(
process
.
env
.
UNI_OUTPUT_DIR
,
'
../.nvue
'
)
export
function
nvueOutDir
(
appService
:
boolean
)
{
return
path
.
join
(
process
.
env
.
UNI_OUTPUT_DIR
,
'
../.nvue
'
+
(
appService
?
'
/.app-service
'
:
''
)
)
}
packages/vite-plugin-uni/src/cli/build.ts
浏览文件 @
4828c8b7
...
...
@@ -101,7 +101,7 @@ export async function buildApp(options: CliOptions) {
if
(
process
.
env
.
UNI_RENDERER
===
'
native
'
)
{
// 纯原生渲染时,main.js + App.vue 需要跟页面分开,独立编译(因为需要包含 Vuex 等共享内容)
process
.
env
.
UNI_COMPILER
=
'
nvue
'
process
.
env
.
UNI_
COMPILER_NVUE
=
'
app
'
process
.
env
.
UNI_
RENDERER_NATIVE
=
'
appService
'
const
nvueAppBuilder
=
await
buildByVite
(
addConfigFile
(
extend
(
...
...
@@ -110,7 +110,7 @@ export async function buildApp(options: CliOptions) {
)
)
)
process
.
env
.
UNI_
COMPILER_NVUE
=
'
page
'
process
.
env
.
UNI_
RENDERER_NATIVE
=
'
pages
'
const
nvueBuilder
=
await
buildByVite
(
addConfigFile
(
extend
(
...
...
packages/vite-plugin-uni/src/index.ts
浏览文件 @
4828c8b7
...
...
@@ -134,10 +134,11 @@ export default function uniPlugin(
vuePlugin
(
initPluginVueOptions
(
options
,
uniPlugins
,
uniPluginOptions
))
)
//
混合编译时,nvue 下,不需要
copy
//
仅在 vue 或 纯原生 App.vue 编译时做
copy
if
(
process
.
env
.
UNI_RENDERER
===
'
native
'
||
process
.
env
.
UNI_COMPILER
===
'
vue
'
process
.
env
.
UNI_COMPILER
===
'
vue
'
||
(
process
.
env
.
UNI_RENDERER
===
'
native
'
&&
process
.
env
.
UNI_COMPILER_NVUE
===
'
app
'
)
)
{
plugins
.
push
(
uniCopyPlugin
({
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录