@unocss/vite 0.45.1 → 0.45.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -374,14 +374,15 @@ function GlobalModeBuildPlugin({ uno, ready, extract, tokens, filter, getConfig
374
374
 
375
375
  const WARN_TIMEOUT = 2e4;
376
376
  const WS_EVENT_PREFIX = "unocss:hmr";
377
+ const HASH_LENGTH = 6;
377
378
  function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extract, filter }) {
378
379
  const servers = [];
379
380
  let base = "";
380
381
  const tasks = [];
381
382
  const entries = /* @__PURE__ */ new Set();
382
383
  let invalidateTimer;
383
- let lastUpdate = Date.now();
384
- let lastServed = 0;
384
+ const lastServedHash = /* @__PURE__ */ new Map();
385
+ let lastServedTime = Date.now();
385
386
  let resolved = false;
386
387
  let resolvedWarnTimer;
387
388
  function configResolved(config) {
@@ -401,10 +402,12 @@ function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extra
401
402
  }
402
403
  }
403
404
  clearTimeout(invalidateTimer);
404
- invalidateTimer = setTimeout(() => sendUpdate(ids), timer);
405
+ invalidateTimer = setTimeout(() => {
406
+ lastServedHash.clear();
407
+ sendUpdate(ids);
408
+ }, timer);
405
409
  }
406
410
  function sendUpdate(ids) {
407
- lastUpdate = Date.now();
408
411
  for (const server of servers) {
409
412
  server.ws.send({
410
413
  type: "update",
@@ -415,7 +418,7 @@ function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extra
415
418
  return {
416
419
  acceptedPath: mod.url,
417
420
  path: mod.url,
418
- timestamp: lastUpdate,
421
+ timestamp: lastServedTime,
419
422
  type: "js-update"
420
423
  };
421
424
  }).filter(core.notNull)
@@ -439,7 +442,7 @@ function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extra
439
442
  }
440
443
  }
441
444
  onInvalidate(() => {
442
- invalidate(0, /* @__PURE__ */ new Set([...entries, ...affectedModules]));
445
+ invalidate(10, /* @__PURE__ */ new Set([...entries, ...affectedModules]));
443
446
  });
444
447
  return [
445
448
  {
@@ -449,13 +452,13 @@ function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extra
449
452
  configResolved,
450
453
  async configureServer(_server) {
451
454
  servers.push(_server);
452
- _server.ws.on(WS_EVENT_PREFIX, (servedTime) => {
453
- if (servedTime < lastUpdate)
454
- invalidate(0);
455
+ _server.ws.on(WS_EVENT_PREFIX, ([layer, hash]) => {
456
+ if (lastServedHash.get(layer) !== hash)
457
+ sendUpdate(entries);
455
458
  });
456
459
  },
457
- async buildStart() {
458
- await uno.generate("", { preflights: true });
460
+ buildStart() {
461
+ uno.generate("", { preflights: true });
459
462
  },
460
463
  transform(code, id) {
461
464
  if (filter(code, id))
@@ -483,8 +486,11 @@ function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extra
483
486
  return null;
484
487
  await Promise.all(tasks);
485
488
  const result = await uno.generate(tokens);
486
- lastServed = Date.now();
487
- return layer === LAYER_MARK_ALL ? result.getLayers(void 0, Array.from(entries).map((i) => resolveLayer(i)).filter((i) => !!i)) : result.getLayer(layer);
489
+ const css = layer === LAYER_MARK_ALL ? result.getLayers(void 0, Array.from(entries).map((i) => resolveLayer(i)).filter((i) => !!i)) : result.getLayer(layer);
490
+ const hash = getHash(css || "", HASH_LENGTH);
491
+ lastServedHash.set(layer, hash);
492
+ lastServedTime = Date.now();
493
+ return `/*${hash}*/${css}`;
488
494
  }
489
495
  },
490
496
  {
@@ -495,10 +501,15 @@ function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extra
495
501
  },
496
502
  enforce: "post",
497
503
  transform(code, id) {
498
- if (entries.has(getPath(id)) && code.includes("import.meta.hot")) {
499
- const snippet = `
500
- if (import.meta.hot) { try { import.meta.hot.send('${WS_EVENT_PREFIX}', ${lastServed}) } catch (e) { console.warn('[unocss-hmr]', e) } }`;
501
- return code + snippet;
504
+ const layer = resolveLayer(getPath(id));
505
+ if (layer && code.includes("import.meta.hot")) {
506
+ return `${code}
507
+ if (import.meta.hot) {
508
+ try { await import.meta.hot.send('${WS_EVENT_PREFIX}', ['${layer}', __vite__css.slice(2,${2 + HASH_LENGTH})]); }
509
+ catch (e) { console.warn('[unocss-hmr]', e) }
510
+ if (!import.meta.url.includes('?'))
511
+ await new Promise(resolve => setTimeout(resolve, 100))
512
+ }`;
502
513
  }
503
514
  }
504
515
  }
package/dist/index.mjs CHANGED
@@ -363,14 +363,15 @@ function GlobalModeBuildPlugin({ uno, ready, extract, tokens, filter, getConfig
363
363
 
364
364
  const WARN_TIMEOUT = 2e4;
365
365
  const WS_EVENT_PREFIX = "unocss:hmr";
366
+ const HASH_LENGTH = 6;
366
367
  function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extract, filter }) {
367
368
  const servers = [];
368
369
  let base = "";
369
370
  const tasks = [];
370
371
  const entries = /* @__PURE__ */ new Set();
371
372
  let invalidateTimer;
372
- let lastUpdate = Date.now();
373
- let lastServed = 0;
373
+ const lastServedHash = /* @__PURE__ */ new Map();
374
+ let lastServedTime = Date.now();
374
375
  let resolved = false;
375
376
  let resolvedWarnTimer;
376
377
  function configResolved(config) {
@@ -390,10 +391,12 @@ function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extra
390
391
  }
391
392
  }
392
393
  clearTimeout(invalidateTimer);
393
- invalidateTimer = setTimeout(() => sendUpdate(ids), timer);
394
+ invalidateTimer = setTimeout(() => {
395
+ lastServedHash.clear();
396
+ sendUpdate(ids);
397
+ }, timer);
394
398
  }
395
399
  function sendUpdate(ids) {
396
- lastUpdate = Date.now();
397
400
  for (const server of servers) {
398
401
  server.ws.send({
399
402
  type: "update",
@@ -404,7 +407,7 @@ function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extra
404
407
  return {
405
408
  acceptedPath: mod.url,
406
409
  path: mod.url,
407
- timestamp: lastUpdate,
410
+ timestamp: lastServedTime,
408
411
  type: "js-update"
409
412
  };
410
413
  }).filter(notNull)
@@ -428,7 +431,7 @@ function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extra
428
431
  }
429
432
  }
430
433
  onInvalidate(() => {
431
- invalidate(0, /* @__PURE__ */ new Set([...entries, ...affectedModules]));
434
+ invalidate(10, /* @__PURE__ */ new Set([...entries, ...affectedModules]));
432
435
  });
433
436
  return [
434
437
  {
@@ -438,13 +441,13 @@ function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extra
438
441
  configResolved,
439
442
  async configureServer(_server) {
440
443
  servers.push(_server);
441
- _server.ws.on(WS_EVENT_PREFIX, (servedTime) => {
442
- if (servedTime < lastUpdate)
443
- invalidate(0);
444
+ _server.ws.on(WS_EVENT_PREFIX, ([layer, hash]) => {
445
+ if (lastServedHash.get(layer) !== hash)
446
+ sendUpdate(entries);
444
447
  });
445
448
  },
446
- async buildStart() {
447
- await uno.generate("", { preflights: true });
449
+ buildStart() {
450
+ uno.generate("", { preflights: true });
448
451
  },
449
452
  transform(code, id) {
450
453
  if (filter(code, id))
@@ -472,8 +475,11 @@ function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extra
472
475
  return null;
473
476
  await Promise.all(tasks);
474
477
  const result = await uno.generate(tokens);
475
- lastServed = Date.now();
476
- return layer === LAYER_MARK_ALL ? result.getLayers(void 0, Array.from(entries).map((i) => resolveLayer(i)).filter((i) => !!i)) : result.getLayer(layer);
478
+ const css = layer === LAYER_MARK_ALL ? result.getLayers(void 0, Array.from(entries).map((i) => resolveLayer(i)).filter((i) => !!i)) : result.getLayer(layer);
479
+ const hash = getHash(css || "", HASH_LENGTH);
480
+ lastServedHash.set(layer, hash);
481
+ lastServedTime = Date.now();
482
+ return `/*${hash}*/${css}`;
477
483
  }
478
484
  },
479
485
  {
@@ -484,10 +490,15 @@ function GlobalModeDevPlugin({ uno, tokens, affectedModules, onInvalidate, extra
484
490
  },
485
491
  enforce: "post",
486
492
  transform(code, id) {
487
- if (entries.has(getPath(id)) && code.includes("import.meta.hot")) {
488
- const snippet = `
489
- if (import.meta.hot) { try { import.meta.hot.send('${WS_EVENT_PREFIX}', ${lastServed}) } catch (e) { console.warn('[unocss-hmr]', e) } }`;
490
- return code + snippet;
493
+ const layer = resolveLayer(getPath(id));
494
+ if (layer && code.includes("import.meta.hot")) {
495
+ return `${code}
496
+ if (import.meta.hot) {
497
+ try { await import.meta.hot.send('${WS_EVENT_PREFIX}', ['${layer}', __vite__css.slice(2,${2 + HASH_LENGTH})]); }
498
+ catch (e) { console.warn('[unocss-hmr]', e) }
499
+ if (!import.meta.url.includes('?'))
500
+ await new Promise(resolve => setTimeout(resolve, 100))
501
+ }`;
491
502
  }
492
503
  }
493
504
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unocss/vite",
3
- "version": "0.45.1",
3
+ "version": "0.45.5",
4
4
  "description": "The Vite plugin for UnoCSS",
5
5
  "author": "Anthony Fu <anthonyfu117@hotmail.com>",
6
6
  "license": "MIT",
@@ -44,15 +44,15 @@
44
44
  "dependencies": {
45
45
  "@ampproject/remapping": "^2.2.0",
46
46
  "@rollup/pluginutils": "^4.2.1",
47
- "@unocss/config": "0.45.1",
48
- "@unocss/core": "0.45.1",
49
- "@unocss/inspector": "0.45.1",
50
- "@unocss/scope": "0.45.1",
51
- "@unocss/transformer-directives": "0.45.1",
47
+ "@unocss/config": "0.45.5",
48
+ "@unocss/core": "0.45.5",
49
+ "@unocss/inspector": "0.45.5",
50
+ "@unocss/scope": "0.45.5",
51
+ "@unocss/transformer-directives": "0.45.5",
52
52
  "magic-string": "^0.26.2"
53
53
  },
54
54
  "devDependencies": {
55
- "@unocss/shared-integration": "0.45.1",
55
+ "@unocss/shared-integration": "0.45.5",
56
56
  "vite": "^3.0.4"
57
57
  },
58
58
  "scripts": {