Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Velpro187
uni-app
提交
74a43615
U
uni-app
项目概览
Velpro187
/
uni-app
与 Fork 源项目一致
Fork自
DCloud / uni-app
通知
1
Star
1
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,发现更多精彩内容 >>
提交
74a43615
编写于
10月 11, 2021
作者:
fxy060608
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
wip(mp): css
上级
81329b2e
变更
16
显示空白变更内容
内联
并排
Showing
16 changed file
with
193 addition
and
50 deletion
+193
-50
packages/uni-app-vite/src/plugin/configResolved.ts
packages/uni-app-vite/src/plugin/configResolved.ts
+1
-0
packages/uni-cli-shared/src/utils.ts
packages/uni-cli-shared/src/utils.ts
+12
-0
packages/uni-cli-shared/src/vite/index.ts
packages/uni-cli-shared/src/vite/index.ts
+5
-0
packages/uni-cli-shared/src/vite/plugins/vitejs/plugins/css.ts
...ges/uni-cli-shared/src/vite/plugins/vitejs/plugins/css.ts
+6
-6
packages/uni-cli-shared/src/vite/utils/plugin.ts
packages/uni-cli-shared/src/vite/utils/plugin.ts
+2
-2
packages/uni-mp-compiler/src/compile.ts
packages/uni-mp-compiler/src/compile.ts
+5
-2
packages/uni-mp-compiler/src/options.ts
packages/uni-mp-compiler/src/options.ts
+3
-1
packages/uni-mp-vite/src/index.ts
packages/uni-mp-vite/src/index.ts
+1
-0
packages/uni-mp-vite/src/plugin/build.ts
packages/uni-mp-vite/src/plugin/build.ts
+8
-0
packages/uni-mp-vite/src/plugin/configResolved.ts
packages/uni-mp-vite/src/plugin/configResolved.ts
+13
-7
packages/uni-mp-vite/src/plugin/index.ts
packages/uni-mp-vite/src/plugin/index.ts
+63
-8
packages/uni-mp-vite/src/plugin/uni/index.ts
packages/uni-mp-vite/src/plugin/uni/index.ts
+5
-1
packages/uni-mp-weixin/dist/uni.compiler.js
packages/uni-mp-weixin/dist/uni.compiler.js
+30
-6
packages/uni-mp-weixin/src/plugin/index.ts
packages/uni-mp-weixin/src/plugin/index.ts
+34
-7
packages/vite-plugin-uni/src/utils/plugin.ts
packages/vite-plugin-uni/src/utils/plugin.ts
+1
-10
packages/vite-plugin-uni/src/vue/options.ts
packages/vite-plugin-uni/src/vue/options.ts
+4
-0
未找到文件。
packages/uni-app-vite/src/plugin/configResolved.ts
浏览文件 @
74a43615
...
...
@@ -12,6 +12,7 @@ export const configResolved: Plugin['configResolved'] = (config) => {
removePlugins
(
'
vite:import-analysis
'
,
config
)
injectCssPlugin
(
config
)
injectCssPostPlugin
(
config
,
{
extname
:
'
.css
'
,
appCss
:
fs
.
readFileSync
(
require
.
resolve
(
'
@dcloudio/uni-app-plus/dist/style.css
'
),
'
utf8
'
...
...
packages/uni-cli-shared/src/utils.ts
浏览文件 @
74a43615
...
...
@@ -49,3 +49,15 @@ export function removeExt(str: string, ext?: string) {
}
return
normalizePath
(
str
.
replace
(
/
\.\w
+$/g
,
''
))
}
const
NODE_MODULES_REGEX
=
/
(\.\.\/)?
node_modules/g
export
function
normalizeNodeModules
(
str
:
string
)
{
str
=
normalizePath
(
str
).
replace
(
NODE_MODULES_REGEX
,
'
node-modules
'
)
// HBuilderX 内置模块路径转换
str
=
str
.
replace
(
/.*
\/
plugins
\/
uniapp-cli
\/
node
[
-_
]
modules/
,
'
node-modules
'
)
if
(
process
.
env
.
UNI_PLATFORM
===
'
mp-alipay
'
)
{
str
=
str
.
replace
(
'
node-modules/@
'
,
'
node-modules/npm-scope-
'
)
}
return
str
}
packages/uni-cli-shared/src/vite/index.ts
浏览文件 @
74a43615
import
type
{
Plugin
}
from
'
vite
'
import
type
{
EmittedFile
}
from
'
rollup
'
import
type
{
ParserOptions
}
from
'
@vue/compiler-core
'
import
type
{
CompilerOptions
,
TemplateCompiler
}
from
'
@vue/compiler-sfc
'
import
{
UniViteCopyPluginOptions
}
from
'
./plugins/copy
'
export
interface
CopyOptions
{
/**
* 静态资源,配置的目录,在 uni_modules 中同样支持
...
...
@@ -13,6 +15,9 @@ export interface CopyOptions {
interface
UniVitePluginUniOptions
{
compiler
?:
TemplateCompiler
compilerOptions
?:
{
miniProgram
?:
{
emitFile
?:
(
emittedFile
:
EmittedFile
)
=>
string
}
isNativeTag
:
ParserOptions
[
'
isNativeTag
'
]
isCustomElement
:
ParserOptions
[
'
isCustomElement
'
]
directiveTransforms
?:
CompilerOptions
[
'
directiveTransforms
'
]
...
...
packages/uni-cli-shared/src/vite/plugins/vitejs/plugins/css.ts
浏览文件 @
74a43615
...
...
@@ -178,14 +178,14 @@ export function cssPlugin(config: ResolvedConfig): Plugin {
}
}
function
normalizeCssChunkFilename
(
id
:
string
)
{
function
normalizeCssChunkFilename
(
id
:
string
,
extname
:
string
=
'
.css
'
)
{
return
normalizePath
(
path
.
relative
(
process
.
env
.
UNI_INPUT_DIR
,
id
.
split
(
'
?
'
)[
0
]
.
replace
(
EXTNAME_VUE_RE
,
'
.css
'
)
.
replace
(
EXTNAME_JS_RE
,
'
.css
'
)
.
replace
(
EXTNAME_VUE_RE
,
extname
)
.
replace
(
EXTNAME_JS_RE
,
extname
)
)
)
}
...
...
@@ -228,7 +228,7 @@ function findCssModuleIds(
*/
export
function
cssPostPlugin
(
config
:
ResolvedConfig
,
{
appCss
}:
{
appCss
?
:
string
}
{
appCss
,
extname
}:
{
appCss
?:
string
;
extname
:
string
}
):
Plugin
{
// styles initialization in buildStart causes a styling loss in watch
const
styles
:
Map
<
string
,
string
>
=
new
Map
<
string
,
string
>
()
...
...
@@ -259,11 +259,11 @@ export function cssPostPlugin(
moduleIds
.
forEach
((
id
)
=>
{
if
(
id
===
mainPath
)
{
// 全局样式
cssChunks
.
set
(
'
app
.css
'
,
findCssModuleIds
.
call
(
this
,
id
))
cssChunks
.
set
(
'
app
'
+
extname
,
findCssModuleIds
.
call
(
this
,
id
))
}
else
if
(
id
.
includes
(
'
mpType=page
'
))
{
// 页面样式
cssChunks
.
set
(
normalizeCssChunkFilename
(
id
),
normalizeCssChunkFilename
(
id
,
extname
),
findCssModuleIds
.
call
(
this
,
id
)
)
}
...
...
packages/uni-cli-shared/src/vite/utils/plugin.ts
浏览文件 @
74a43615
...
...
@@ -19,9 +19,9 @@ export function injectCssPlugin(config: ResolvedConfig) {
export
function
injectCssPostPlugin
(
config
:
ResolvedConfig
,
{
appCss
}:
{
appCss
?
:
string
}
{
appCss
,
extname
}:
{
appCss
?:
string
;
extname
:
string
}
)
{
replacePlugins
([
cssPostPlugin
(
config
,
{
appCss
})],
config
)
replacePlugins
([
cssPostPlugin
(
config
,
{
appCss
,
extname
})],
config
)
}
export
function
replacePlugins
(
plugins
:
Plugin
[],
config
:
ResolvedConfig
)
{
...
...
packages/uni-mp-compiler/src/compile.ts
浏览文件 @
74a43615
...
...
@@ -48,8 +48,11 @@ export function baseCompile(template: string, options: CompilerOptions = {}) {
})
)
const
result
=
extend
(
generate
(
context
.
scope
,
options
),
{
ast
})
if
(
options
.
filename
&&
options
.
emitFile
)
{
genTemplate
(
ast
,
{
filename
:
options
.
filename
,
emitFile
:
options
.
emitFile
})
if
(
options
.
filename
&&
options
.
miniProgram
?.
emitFile
)
{
genTemplate
(
ast
,
{
filename
:
options
.
filename
,
emitFile
:
options
.
miniProgram
.
emitFile
,
})
}
return
result
...
...
packages/uni-mp-compiler/src/options.ts
浏览文件 @
74a43615
...
...
@@ -60,7 +60,9 @@ export interface CodegenOptions extends SharedTransformCodegenOptions {
scopeId
?:
string
|
null
runtimeModuleName
?:
string
runtimeGlobalName
?:
string
miniProgram
?:
{
emitFile
?:
(
emittedFile
:
EmittedFile
)
=>
string
}
}
export
interface
TemplateCodegenOptions
{
...
...
packages/uni-mp-vite/src/index.ts
浏览文件 @
74a43615
...
...
@@ -3,6 +3,7 @@ import { uniMainJsPlugin } from './plugins/mainJs'
import
{
uniManifestJsonPlugin
}
from
'
./plugins/manifestJson
'
import
{
uniPagesJsonPlugin
}
from
'
./plugins/pagesJson
'
import
{
uniVirtualPlugin
}
from
'
./plugins/virtual
'
export
{
UniMiniProgramPluginOptions
}
from
'
./plugin
'
export
default
(
options
:
UniMiniProgramPluginOptions
)
=>
{
return
[
uniMainJsPlugin
(
options
),
...
...
packages/uni-mp-vite/src/plugin/build.ts
浏览文件 @
74a43615
import
fs
from
'
fs
'
import
path
from
'
path
'
import
{
UserConfig
}
from
'
vite
'
import
{
emptyDir
,
isCSSRequest
,
normalizePath
,
resolveMainPathOnce
,
...
...
@@ -16,8 +18,14 @@ import {
export
function
buildOptions
():
UserConfig
[
'
build
'
]
{
const
inputDir
=
process
.
env
.
UNI_INPUT_DIR
const
outputDir
=
process
.
env
.
UNI_OUTPUT_DIR
// 开始编译时,清空输出目录
if
(
fs
.
existsSync
(
outputDir
))
{
emptyDir
(
outputDir
)
}
return
{
// sourcemap: 'inline', // TODO
emptyOutDir
:
false
,
// 不清空输出目录,否则会影响自定义的一些文件输出,比如wxml
assetsInlineLimit
:
0
,
// TODO
lib
:
{
entry
:
resolveMainPathOnce
(
inputDir
),
...
...
packages/uni-mp-vite/src/plugin/configResolved.ts
浏览文件 @
74a43615
...
...
@@ -6,12 +6,18 @@ import {
injectCssPlugin
,
injectCssPostPlugin
,
}
from
'
@dcloudio/uni-cli-shared
'
import
{
UniMiniProgramPluginOptions
}
from
'
.
'
export
const
configResolved
:
Plugin
[
'
configResolved
'
]
=
(
config
)
=>
{
export
function
createConfigResolved
({
style
:
{
extname
},
}:
UniMiniProgramPluginOptions
):
Plugin
[
'
configResolved
'
]
{
return
(
config
)
=>
{
removePlugins
(
'
vite:import-analysis
'
,
config
)
injectCssPlugin
(
config
)
injectCssPostPlugin
(
config
,
{
extname
,
appCss
:
''
,
})
injectAssetPlugin
(
config
)
}
}
packages/uni-mp-vite/src/plugin/index.ts
浏览文件 @
74a43615
import
path
from
'
path
'
import
debug
from
'
debug
'
import
fs
from
'
fs-extra
'
import
{
AliasOptions
}
from
'
vite
'
import
{
resolveBuiltIn
,
UniVitePlugin
}
from
'
@dcloudio/uni-cli-shared
'
import
{
EXTNAME_VUE_RE
,
normalizeNodeModules
,
resolveBuiltIn
,
UniVitePlugin
,
}
from
'
@dcloudio/uni-cli-shared
'
import
{
uniOptions
}
from
'
./uni
'
import
{
buildOptions
}
from
'
./build
'
import
{
configResolved
}
from
'
./configResolved
'
import
{
createConfigResolved
}
from
'
./configResolved
'
import
{
EmittedFile
}
from
'
rollup
'
const
debugMp
=
debug
(
'
vite:uni:mp
'
)
export
interface
UniMiniProgramPluginOptions
{
vite
:
{
alias
:
AliasOptions
}
global
:
string
alias
?:
AliasOptions
app
:
{
darkmode
:
boolean
subpackages
:
boolean
}
project
:
{
filename
:
string
}
template
:
{
extname
:
string
}
style
:
{
extname
:
string
cssVars
:
{
'
--status-bar-height
'
:
string
'
--window-top
'
:
string
'
--window-bottom
'
:
string
'
--window-left
'
:
string
'
--window-right
'
:
string
}
}
filter
?:
{
extname
:
string
tag
:
string
}
}
export
function
uniMiniProgramPlugin
({
alias
,
}:
UniMiniProgramPluginOptions
):
UniVitePlugin
{
export
function
uniMiniProgramPlugin
(
options
:
UniMiniProgramPluginOptions
):
UniVitePlugin
{
const
{
vite
:
{
alias
},
template
,
}
=
options
const
emitFile
:
(
emittedFile
:
EmittedFile
)
=>
string
=
(
emittedFile
)
=>
{
if
(
emittedFile
.
type
===
'
asset
'
)
{
const
filename
=
emittedFile
.
fileName
!
const
outputFilename
=
normalizeNodeModules
(
path
.
resolve
(
process
.
env
.
UNI_OUTPUT_DIR
,
path
.
relative
(
process
.
env
.
UNI_INPUT_DIR
,
filename
)
)
).
replace
(
EXTNAME_VUE_RE
,
template
.
extname
)
debugMp
(
outputFilename
)
fs
.
outputFileSync
(
outputFilename
,
emittedFile
.
source
!
)
return
outputFilename
}
return
''
}
return
{
name
:
'
vite:uni-mp
'
,
uni
:
uniOptions
(),
uni
:
uniOptions
(
{
emitFile
}
),
config
()
{
return
{
resolve
:
{
...
...
@@ -27,6 +82,6 @@ export function uniMiniProgramPlugin({
build
:
buildOptions
(),
}
},
configResolved
,
configResolved
:
createConfigResolved
(
options
)
,
}
}
packages/uni-mp-vite/src/plugin/uni/index.ts
浏览文件 @
74a43615
...
...
@@ -2,15 +2,19 @@ import {
isServiceNativeTag
,
isServiceCustomElement
,
}
from
'
@dcloudio/uni-shared
'
import
{
EmittedFile
}
from
'
rollup
'
import
{
UniVitePlugin
}
from
'
@dcloudio/uni-cli-shared
'
import
{
TemplateCompiler
}
from
'
@vue/compiler-sfc
'
import
*
as
compiler
from
'
@dcloudio/uni-mp-compiler
'
export
function
uniOptions
():
UniVitePlugin
[
'
uni
'
]
{
export
function
uniOptions
(
miniProgram
:
{
emitFile
?:
(
emittedFile
:
EmittedFile
)
=>
string
}):
UniVitePlugin
[
'
uni
'
]
{
return
{
compiler
:
compiler
as
TemplateCompiler
,
compilerOptions
:
{
miniProgram
,
isNativeTag
:
isServiceNativeTag
,
isCustomElement
:
isServiceCustomElement
,
},
...
...
packages/uni-mp-weixin/dist/uni.compiler.js
浏览文件 @
74a43615
...
...
@@ -17,14 +17,38 @@ const uniMiniProgramWeixinPlugin = {
};
},
};
var
index
=
[
uniMiniProgramWeixinPlugin
,
...
initMiniProgramPlugin__default
[
"
default
"
]({
global
:
'
wx
'
,
const
options
=
{
vite
:
{
alias
:
{
'
uni-mp-runtime
'
:
uniCliShared
.
resolveBuiltIn
(
'
@dcloudio/uni-mp-weixin/dist/uni.mp.esm.js
'
),
},
}),
];
},
global
:
'
wx
'
,
app
:
{
darkmode
:
true
,
subpackages
:
true
,
},
project
:
{
filename
:
'
project.config.json
'
,
},
template
:
{
extname
:
'
.wxml
'
,
},
style
:
{
extname
:
'
.wxss
'
,
cssVars
:
{
'
--status-bar-height
'
:
'
25px
'
,
'
--window-top
'
:
'
0px
'
,
'
--window-bottom
'
:
'
0px
'
,
'
--window-left
'
:
'
0px
'
,
'
--window-right
'
:
'
0px
'
,
},
},
filter
:
{
extname
:
'
.wxs
'
,
tag
:
'
wxs
'
,
},
};
var
index
=
[
uniMiniProgramWeixinPlugin
,
...
initMiniProgramPlugin__default
[
"
default
"
](
options
)];
module
.
exports
=
index
;
packages/uni-mp-weixin/src/plugin/index.ts
浏览文件 @
74a43615
import
{
Plugin
}
from
'
vite
'
import
{
resolveBuiltIn
}
from
'
@dcloudio/uni-cli-shared
'
import
initMiniProgramPlugin
from
'
@dcloudio/uni-mp-vite
'
import
initMiniProgramPlugin
,
{
UniMiniProgramPluginOptions
,
}
from
'
@dcloudio/uni-mp-vite
'
const
uniMiniProgramWeixinPlugin
:
Plugin
=
{
name
:
'
vite:uni-mp-weixin
'
,
...
...
@@ -13,14 +15,39 @@ const uniMiniProgramWeixinPlugin: Plugin = {
},
}
export
default
[
uniMiniProgramWeixinPlugin
,
...
initMiniProgramPlugin
({
global
:
'
wx
'
,
const
options
:
UniMiniProgramPluginOptions
=
{
vite
:
{
alias
:
{
'
uni-mp-runtime
'
:
resolveBuiltIn
(
'
@dcloudio/uni-mp-weixin/dist/uni.mp.esm.js
'
),
},
}),
]
},
global
:
'
wx
'
,
app
:
{
darkmode
:
true
,
subpackages
:
true
,
},
project
:
{
filename
:
'
project.config.json
'
,
},
template
:
{
extname
:
'
.wxml
'
,
},
style
:
{
extname
:
'
.wxss
'
,
cssVars
:
{
'
--status-bar-height
'
:
'
25px
'
,
'
--window-top
'
:
'
0px
'
,
'
--window-bottom
'
:
'
0px
'
,
'
--window-left
'
:
'
0px
'
,
'
--window-right
'
:
'
0px
'
,
},
},
filter
:
{
extname
:
'
.wxs
'
,
tag
:
'
wxs
'
,
},
}
export
default
[
uniMiniProgramWeixinPlugin
,
...
initMiniProgramPlugin
(
options
)]
packages/vite-plugin-uni/src/utils/plugin.ts
浏览文件 @
74a43615
...
...
@@ -39,16 +39,7 @@ export function initPluginUniOptions(UniVitePlugins: UniVitePlugin[]) {
compiler
=
pluginTemplateCompiler
}
if
(
pluginCompilerOptions
)
{
if
(
pluginCompilerOptions
.
isNativeTag
)
{
compilerOptions
.
isNativeTag
=
pluginCompilerOptions
.
isNativeTag
}
if
(
pluginCompilerOptions
.
isCustomElement
)
{
compilerOptions
.
isCustomElement
=
pluginCompilerOptions
.
isCustomElement
}
if
(
pluginCompilerOptions
.
directiveTransforms
)
{
compilerOptions
.
directiveTransforms
=
pluginCompilerOptions
.
directiveTransforms
}
extend
(
compilerOptions
,
pluginCompilerOptions
)
}
if
(
pluginTransformEvent
)
{
extend
(
transformEvent
,
pluginTransformEvent
)
...
...
packages/vite-plugin-uni/src/vue/options.ts
浏览文件 @
74a43615
...
...
@@ -72,6 +72,7 @@ export function initPluginVueOptions(
const
{
compiler
,
compilerOptions
:
{
miniProgram
,
isNativeTag
,
isCustomElement
,
nodeTransforms
,
...
...
@@ -81,6 +82,9 @@ export function initPluginVueOptions(
if
(
compiler
)
{
templateOptions
.
compiler
=
compiler
}
if
(
miniProgram
)
{
;(
compilerOptions
as
any
).
miniProgram
=
miniProgram
}
compilerOptions
.
isNativeTag
=
isNativeTag
compilerOptions
.
isCustomElement
=
isCustomElement
if
(
directiveTransforms
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录