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

fix(app): don't compile app.css.js when project has no nvue page (#3403)

上级 ee4cbad8
......@@ -29,6 +29,7 @@ import { transformRootNode } from './transforms/transformRootNode'
import { transformModel } from './transforms/vModel'
import { transformShow } from './transforms/vShow'
import { transformAttrs } from './transforms/transformAttrs'
import { nvuePagesCache } from '../plugins/pagesJson'
const uTags = {
text: 'u-text',
......@@ -118,13 +119,18 @@ export function uniAppNVuePlugin({
if (!cssLangRE.test(filename) || commonjsProxyRE.test(filename)) {
return
}
const nvuePages = nvuePagesCache.get(config)
if (!nvuePages || !Object.keys(nvuePages).length) {
// 当前项目没有 nvue 文件
return { code: `export default {}`, map: { mappings: '' } }
}
const { code, messages } = await parse(source, {
filename,
logLevel: 'WARNING',
})
messages.forEach((message) => {
if (message.type === 'warning') {
let msg = `[plugin:vite:css] ${message.text}`
let msg = `[plugin:vite:nvue-css] ${message.text}`
if (message.line && message.column) {
msg += `\n${generateCodeFrame(source, {
line: message.line,
......
import path from 'path'
import type { Plugin } from 'vite'
import type { Plugin, ResolvedConfig } from 'vite'
import type { CompilerOptions } from '@vue/compiler-sfc'
import {
defineUniPagesJsonPlugin,
......@@ -20,6 +20,8 @@ interface NVuePages {
}
}
export const nvuePagesCache = new Map<ResolvedConfig, NVuePages>()
export function uniPagesJsonPlugin({
renderer,
appService,
......@@ -36,6 +38,9 @@ export function uniPagesJsonPlugin({
return {
name: 'uni:app-nvue-pages-json',
enforce: 'pre',
configResolved(config) {
nvuePagesCache.set(config, nvuePages)
},
transform(code, id) {
if (!opts.filter(id)) {
return
......@@ -47,6 +52,9 @@ export function uniPagesJsonPlugin({
this.addWatchFile(filepath)
})
const pagesJson = normalizePagesJson(code, process.env.UNI_PLATFORM)
Object.keys(nvuePages).forEach((name) => {
delete nvuePages[name]
})
pagesJson.pages.forEach((page) => {
if (page.style.isNVue) {
const filename = normalizePath(
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册