From 9d40966882284f3a6370107c670c02ec3ad5276e Mon Sep 17 00:00:00 2001 From: likui <2218301630@qq.com> Date: Tue, 26 May 2020 14:23:46 +0800 Subject: [PATCH 1/2] feat: skip unused assets watch apply --- src/node/server/serverPluginAssets.ts | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/src/node/server/serverPluginAssets.ts b/src/node/server/serverPluginAssets.ts index fd88c865fe1a0a..28a481ff7be6c6 100644 --- a/src/node/server/serverPluginAssets.ts +++ b/src/node/server/serverPluginAssets.ts @@ -1,13 +1,29 @@ import { ServerPlugin } from '.' import { isImportRequest, isStaticAsset } from '../utils' -export const assetPathPlugin: ServerPlugin = ({ app }) => { +const usedAssetsSet = new Set() + +export const assetPathPlugin: ServerPlugin = ({ app, resolver, watcher }) => { app.use(async (ctx, next) => { - if (isStaticAsset(ctx.path) && isImportRequest(ctx)) { - ctx.type = 'js' - ctx.body = `export default ${JSON.stringify(ctx.path)}` - return + if (isStaticAsset(ctx.path)) { + if (isImportRequest(ctx)) { + ctx.type = 'js' + ctx.body = `export default ${JSON.stringify(ctx.path)}` + return + } + usedAssetsSet.add(ctx.path) } return next() }) + + watcher.on('change', (filePath) => { + if (isStaticAsset(filePath)) { + const publicPath = resolver.fileToRequest(filePath) + + // skip unused + if (!usedAssetsSet.has(publicPath)) return + + watcher.handleJSReload(filePath) + } + }) } From 6e641e0d16d8c20e361f5324d862edff852ba307 Mon Sep 17 00:00:00 2001 From: likui <2218301630@qq.com> Date: Tue, 26 May 2020 15:25:40 +0800 Subject: [PATCH 2/2] fix: skip check for assets files --- src/node/server/serverPluginHmr.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/node/server/serverPluginHmr.ts b/src/node/server/serverPluginHmr.ts index 385f9e9636dbe6..e848d7cee3695b 100644 --- a/src/node/server/serverPluginHmr.ts +++ b/src/node/server/serverPluginHmr.ts @@ -32,6 +32,7 @@ import { InternalResolver } from '../resolver' import LRUCache from 'lru-cache' import slash from 'slash' import { cssPreprocessLangRE } from '../utils/cssUtils' +import { isStaticAsset } from '../utils' export const debugHmr = require('debug')('vite:hmr') @@ -183,6 +184,7 @@ export const hmrPlugin: ServerPlugin = ({ watcher.on('change', (file) => { if ( !( + isStaticAsset(file) || file.endsWith('.vue') || file.endsWith('.css') || cssPreprocessLangRE.test(file)