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

wip(app): logs

上级 c238e3d6
......@@ -26,8 +26,8 @@ function runWebpack(mode, options) {
console.log(stats.toString({
all: false,
assets: true,
colors: true,
timings: true,
colors: true, // 在控制台展示颜色
// timings: true,
}));
resolve(void 0);
});
......
......@@ -30,7 +30,7 @@ function runWebpack(
all: false,
assets: true,
colors: true, // 在控制台展示颜色
timings: true,
// timings: true,
})
)
resolve(void 0)
......
import { Formatter } from '../logs/format'
export const h5ServeFormatter: Formatter = {
test(msg) {
return msg.includes(' > Local:') || msg.includes(' > Network:')
},
format(msg) {
return msg.replace('>', '-')
},
}
const REMOVED_MSGS = [
'build started...',
(msg: string) => {
return msg.startsWith('built in ')
},
'watching for file changes...',
]
export const removeInfoFormatter: Formatter = {
test(msg) {
return !!REMOVED_MSGS.find((m) =>
typeof m === 'string' ? msg.includes(m) : m(msg)
)
},
format() {
return ''
},
}
import { once } from '@dcloudio/uni-shared'
import { isInHBuilderX } from '../hbx/env'
import { moduleAliasFormatter } from '../hbx/alias'
import { h5ServeFormatter, removeInfoFormatter } from '../hbx/log'
export interface Formatter {
test: (msg: string) => boolean
format: (msg: string) => string
}
const formatters: Formatter[] = []
const errFormatters: Formatter[] = []
const infoFormatters: Formatter[] = []
const initErrFormattersOnce = once(() => {
if (isInHBuilderX()) {
errFormatters.push(moduleAliasFormatter)
}
})
const initInfoFormattersOnce = once(() => {
if (isInHBuilderX()) {
if (
// 开发模式下
process.env.UNI_PLATFORM === 'h5' &&
process.env.NODE_ENV !== 'production'
) {
infoFormatters.push(h5ServeFormatter)
}
infoFormatters.push(removeInfoFormatter)
}
})
if (isInHBuilderX()) {
formatters.push(moduleAliasFormatter)
export function formatErrMsg(msg: string) {
initErrFormattersOnce()
const formatter = errFormatters.find(({ test }) => test(msg))
if (formatter) {
return formatter.format(msg)
}
return msg
}
export function formatMsg(msg: string) {
const formatter = formatters.find(({ test }) => test(msg))
export function formatInfoMsg(msg: string) {
initInfoFormattersOnce()
const formatter = infoFormatters.find(({ test }) => test(msg))
if (formatter) {
return formatter.format(msg)
}
......
export { formatMsg } from './format'
export { formatErrMsg, formatInfoMsg } from './format'
......@@ -18,19 +18,6 @@ const ssr_1 = require("./plugins/ssr");
const utils_1 = require("./utils");
const handleHotUpdate_1 = require("./handleHotUpdate");
const transformIndexHtml_1 = require("./transformIndexHtml");
function initLogger({ logger, command }) {
if (command !== 'serve') {
return;
}
const { info } = logger;
logger.info = (msg, opts) => {
// 兼容 HBuilderX 日志输出协议(可以让 HBuilderX 读取到 server 地址,自动打开浏览器)
if (msg && (msg.includes(' > Local:') || msg.includes(' > Network:'))) {
msg = msg.replace('>', '-');
}
return info(msg, opts);
};
}
const UniH5Plugin = {
name: 'vite:uni-h5',
uni: {
......@@ -53,7 +40,8 @@ const UniH5Plugin = {
};
},
configResolved(config) {
initLogger(config);
// TODO 禁止 optimizeDeps
;
config.cacheDir = '';
},
handleHotUpdate: handleHotUpdate_1.createHandleHotUpdate(),
......
......@@ -16,20 +16,6 @@ import { createDefine } from './utils'
import { createHandleHotUpdate } from './handleHotUpdate'
import { createTransformIndexHtml } from './transformIndexHtml'
function initLogger({ logger, command }: ResolvedConfig) {
if (command !== 'serve') {
return
}
const { info } = logger
logger.info = (msg, opts) => {
// 兼容 HBuilderX 日志输出协议(可以让 HBuilderX 读取到 server 地址,自动打开浏览器)
if (msg && (msg.includes(' > Local:') || msg.includes(' > Network:'))) {
msg = msg.replace('>', '-')
}
return info(msg, opts)
}
}
const UniH5Plugin: UniVitePlugin = {
name: 'vite:uni-h5',
uni: {
......@@ -54,7 +40,6 @@ const UniH5Plugin: UniVitePlugin = {
}
},
configResolved(config) {
initLogger(config)
// TODO 禁止 optimizeDeps
;(config as any).cacheDir = ''
},
......
import { extend } from '@vue/shared'
import { RollupWatcher } from 'rollup'
import { BuildOptions, ServerOptions } from 'vite'
import { CliOptions } from '.'
import { build, buildSSR } from './build'
......@@ -13,7 +14,12 @@ export async function runDev(options: CliOptions & ServerOptions) {
if (options.platform === 'h5') {
await (options.ssr ? createSSRServer(options) : createServer(options))
} else {
await build(options)
const watcher = (await build(options)) as RollupWatcher
watcher.on('event', (event) => {
if (event.code === 'BUNDLE_END') {
console.log(`DONE Build complete. Watching for changes...`)
}
})
}
if (options.platform === 'app') {
await runNVue('dev')
......@@ -33,7 +39,7 @@ export async function runBuild(options: CliOptions & BuildOptions) {
if (options.platform === 'app') {
await runNVue('prod')
}
console.log(` DONE Build complete.`)
console.log(`DONE Build complete.`)
} catch (e) {
console.error(`error during build:\n${e.stack || e}`)
process.exit(1)
......
......@@ -5,7 +5,7 @@ import { CliOptions } from '.'
import { addConfigFile, cleanOptions } from './utils'
export async function build(options: CliOptions) {
await buildByVite(
return buildByVite(
addConfigFile(
initBuildOptions(options, cleanOptions(options) as BuildOptions)
)
......
......@@ -55,6 +55,7 @@ export function createConfig(
publicDir: config.publicDir || false,
define: createDefine(options),
resolve: createResolve(options, config),
logLevel: 'warn',
optimizeDeps: createOptimizeDeps(options),
server: createServer(options),
build: createBuild(options),
......
import { Plugin, ResolvedConfig } from 'vite'
import { formatMsg, checkUpdate, isWindows } from '@dcloudio/uni-cli-shared'
import {
formatErrMsg,
checkUpdate,
isWindows,
formatInfoMsg,
} from '@dcloudio/uni-cli-shared'
import { VitePluginUniResolvedOptions } from '..'
import { initEnv } from './env'
......@@ -37,8 +42,17 @@ function initCheckUpdate() {
}
function initLogger({ logger }: ResolvedConfig) {
const { error } = logger
const { info, error } = logger
logger.info = (msg, opts) => {
msg = formatInfoMsg(msg)
if (msg) {
return info(msg, opts)
}
}
logger.error = (msg, opts) => {
return error(formatMsg(msg), opts)
msg = formatErrMsg(msg)
if (msg) {
return error(msg, opts)
}
}
}
......@@ -123,7 +123,7 @@ export function uniEasycomPlugin(
}
}
const RESOLVE_EASYCOM_IMPORT_CODE = `import { resolveEasycom } from '@dcloudio/uni-app';`
const RESOLVE_EASYCOM_IMPORT_CODE = `import { resolveDynamicComponent as __resolveDynamicComponent } from 'vue';import { resolveEasycom } from '@dcloudio/uni-app';`
function genResolveEasycomCode(
importDeclarations: string[],
......@@ -135,7 +135,7 @@ function genResolveEasycomCode(
}
return `resolveEasycom(${code.replace(
'_resolveComponent',
'_resolveDynamicComponent'
'__resolveDynamicComponent'
)}, ${name})`
}
......
......@@ -12,7 +12,7 @@ import {
import { VitePluginUniResolvedOptions } from '..'
import { transformMatchMedia } from './transforms/transformMatchMedia'
import { createTransformEvent } from './transforms/transformEvent'
import { transformContext } from './transforms/transformContext'
// import { transformContext } from './transforms/transformContext'
function createUniVueTransformAssetUrls(
base: string
......@@ -98,7 +98,7 @@ export function initPluginVueOptions(
},
{}
)
compilerOptions.nodeTransforms.unshift(transformContext)
// compilerOptions.nodeTransforms.unshift(transformContext)
compilerOptions.nodeTransforms.unshift(createTransformEvent(eventOpts))
if (options.platform !== 'mp-weixin') {
compilerOptions.nodeTransforms.unshift(transformMatchMedia)
......
import {
RESOLVE_DYNAMIC_COMPONENT,
// RESOLVE_DYNAMIC_COMPONENT,
NodeTypes,
NodeTransform,
} from '@vue/compiler-core'
......@@ -8,6 +8,6 @@ export const transformContext: NodeTransform = (node, context) => {
if (node.type === NodeTypes.ROOT) {
// 注入 resolveDynamicComponent,easycom 会使用 resolveDynamicComponent 替换 resolveComponent 来解决 warning 的问题
// resolveComponent('custom-component') => resolveDynamicComponent('custom-component')
context.helper(RESOLVE_DYNAMIC_COMPONENT)
// context.helper(RESOLVE_DYNAMIC_COMPONENT)
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册