提交 fbd8c553 编写于 作者: fxy060608's avatar fxy060608

wip(mp): css vars

上级 02dc0d9a
因为 它太大了无法显示 source diff 。你可以改为 查看blob
...@@ -21,7 +21,7 @@ import { ...@@ -21,7 +21,7 @@ import {
} from '../plugins/entry' } from '../plugins/entry'
const debugNVueCss = debug('vite:uni:nvue-css') const debugNVueCss = debug('vite:uni:nvue-css')
const cssVars = `page{--status-bar-height:25px;--top-window-height:0px;--window-top:0px;--window-bottom:0px;--window-left:0px;--window-right:0px;--window-magin:0px}`
const shadowCss = `page::after{position:fixed;content:'';left:-1000px;top:-1000px;-webkit-animation:shadow-preload .1s;-webkit-animation-delay:3s;animation:shadow-preload .1s;animation-delay:3s}@-webkit-keyframes shadow-preload{0%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}100%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}}@keyframes shadow-preload{0%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}100%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}}` const shadowCss = `page::after{position:fixed;content:'';left:-1000px;top:-1000px;-webkit-animation:shadow-preload .1s;-webkit-animation-delay:3s;animation:shadow-preload .1s;animation-delay:3s}@-webkit-keyframes shadow-preload{0%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}100%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}}@keyframes shadow-preload{0%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}100%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}}`
export function createConfigResolved({ export function createConfigResolved({
...@@ -52,9 +52,14 @@ export function createConfigResolved({ ...@@ -52,9 +52,14 @@ export function createConfigResolved({
}, },
chunkCssCode(filename, cssCode) { chunkCssCode(filename, cssCode) {
cssCode = transformScopedCss(cssCode) cssCode = transformScopedCss(cssCode)
if (config.isProduction && filename === 'app' + extname) { if (filename === 'app' + extname) {
return cssCode + shadowCss if (config.isProduction) {
return cssCode + shadowCss + cssVars
} else {
return cssCode + cssVars
}
} }
const nvueCssPaths = getNVueCssPaths(config) const nvueCssPaths = getNVueCssPaths(config)
if (!nvueCssPaths || !nvueCssPaths.length) { if (!nvueCssPaths || !nvueCssPaths.length) {
return cssCode return cssCode
......
...@@ -7,12 +7,14 @@ import { ...@@ -7,12 +7,14 @@ import {
parseManifestJsonOnce, parseManifestJsonOnce,
findMiniProgramTemplateFiles, findMiniProgramTemplateFiles,
} from '@dcloudio/uni-cli-shared' } from '@dcloudio/uni-cli-shared'
import { CompilerOptions } from '@vue/compiler-core'
import { uniOptions } from './uni' import { uniOptions } from './uni'
import { buildOptions } from './build' import { buildOptions } from './build'
import { createConfigResolved } from './configResolved' import { createConfigResolved } from './configResolved'
import { emitFile, getFilterFiles, getTemplateFiles } from './template' import { emitFile, getFilterFiles, getTemplateFiles } from './template'
import { CompilerOptions } from '@vue/compiler-core'
import { getNVueCssPaths } from '../plugins/pagesJson'
export interface UniMiniProgramPluginOptions { export interface UniMiniProgramPluginOptions {
vite: { vite: {
...@@ -47,13 +49,6 @@ export interface UniMiniProgramPluginOptions { ...@@ -47,13 +49,6 @@ export interface UniMiniProgramPluginOptions {
} }
style: { style: {
extname: string extname: string
cssVars: {
'--status-bar-height': string
'--window-top': string
'--window-bottom': string
'--window-left': string
'--window-right': string
}
} }
} }
...@@ -66,7 +61,8 @@ export function uniMiniProgramPlugin( ...@@ -66,7 +61,8 @@ export function uniMiniProgramPlugin(
style, style,
} = options } = options
let isFirst = true let nvueCssEmitted = false
let resolvedConfig: ResolvedConfig let resolvedConfig: ResolvedConfig
return { return {
name: 'vite:uni-mp', name: 'vite:uni-mp',
...@@ -117,16 +113,18 @@ export function uniMiniProgramPlugin( ...@@ -117,16 +113,18 @@ export function uniMiniProgramPlugin(
source: templateFiles[filename], source: templateFiles[filename],
}) })
}) })
if (isFirst) { if (!nvueCssEmitted) {
// 仅生成一次 const nvueCssPaths = getNVueCssPaths(resolvedConfig)
isFirst = false if (nvueCssPaths && nvueCssPaths.length) {
this.emitFile({ nvueCssEmitted = true
type: 'asset', this.emitFile({
fileName: 'nvue' + style.extname, type: 'asset',
source: genNVueCssCode( fileName: 'nvue' + style.extname,
parseManifestJsonOnce(process.env.UNI_INPUT_DIR) source: genNVueCssCode(
), parseManifestJsonOnce(process.env.UNI_INPUT_DIR)
}) ),
})
}
} }
}, },
} }
......
...@@ -130,13 +130,6 @@ ${filter.code} ...@@ -130,13 +130,6 @@ ${filter.code}
}, },
style: { style: {
extname: '.wxss', extname: '.wxss',
cssVars: {
'--status-bar-height': '25px',
'--window-top': '0px',
'--window-bottom': '0px',
'--window-left': '0px',
'--window-right': '0px',
},
}, },
}; };
var index = [uniMiniProgramWeixinPlugin, ...initMiniProgramPlugin__default["default"](options)]; var index = [uniMiniProgramWeixinPlugin, ...initMiniProgramPlugin__default["default"](options)];
......
...@@ -84,13 +84,6 @@ ${filter.code} ...@@ -84,13 +84,6 @@ ${filter.code}
}, },
style: { style: {
extname: '.wxss', extname: '.wxss',
cssVars: {
'--status-bar-height': '25px',
'--window-top': '0px',
'--window-bottom': '0px',
'--window-left': '0px',
'--window-right': '0px',
},
}, },
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册