@unocss/vite 0.32.7 → 0.32.8
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/LICENSE +1 -1
- package/README.md +1 -1
- package/dist/index.cjs +2 -13
- package/dist/index.mjs +2 -13
- package/package.json +7 -8
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2021 Anthony Fu <https://github.com/antfu>
|
|
3
|
+
Copyright (c) 2021-PRESENT Anthony Fu <https://github.com/antfu>
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
package/README.md
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -310,7 +310,6 @@ function GlobalModeDevPlugin({ uno, tokens, onInvalidate, extract, filter }) {
|
|
|
310
310
|
let base = "";
|
|
311
311
|
const tasks = [];
|
|
312
312
|
const entries = /* @__PURE__ */ new Map();
|
|
313
|
-
const cssModules = /* @__PURE__ */ new Set();
|
|
314
313
|
let invalidateTimer;
|
|
315
314
|
let lastUpdate = Date.now();
|
|
316
315
|
let lastServed = 0;
|
|
@@ -324,12 +323,8 @@ function GlobalModeDevPlugin({ uno, tokens, onInvalidate, extract, filter }) {
|
|
|
324
323
|
base = base.slice(0, base.length - 1);
|
|
325
324
|
}
|
|
326
325
|
function invalidate(timer = 10) {
|
|
327
|
-
const ids = [
|
|
328
|
-
...entries.keys(),
|
|
329
|
-
...cssModules.keys()
|
|
330
|
-
];
|
|
331
326
|
for (const server of servers) {
|
|
332
|
-
for (const id of
|
|
327
|
+
for (const id of entries.keys()) {
|
|
333
328
|
const mod = server.moduleGraph.getModuleById(id);
|
|
334
329
|
if (!mod)
|
|
335
330
|
continue;
|
|
@@ -341,14 +336,10 @@ function GlobalModeDevPlugin({ uno, tokens, onInvalidate, extract, filter }) {
|
|
|
341
336
|
}
|
|
342
337
|
function sendUpdate() {
|
|
343
338
|
lastUpdate = Date.now();
|
|
344
|
-
const ids = [
|
|
345
|
-
...entries.keys(),
|
|
346
|
-
...cssModules.keys()
|
|
347
|
-
];
|
|
348
339
|
for (const server of servers) {
|
|
349
340
|
server.ws.send({
|
|
350
341
|
type: "update",
|
|
351
|
-
updates: Array.from(
|
|
342
|
+
updates: Array.from(entries.keys()).map((i) => ({
|
|
352
343
|
acceptedPath: i,
|
|
353
344
|
path: i,
|
|
354
345
|
timestamp: lastUpdate,
|
|
@@ -409,8 +400,6 @@ function GlobalModeDevPlugin({ uno, tokens, onInvalidate, extract, filter }) {
|
|
|
409
400
|
entries.set(entry.id, entry.layer);
|
|
410
401
|
return entry.id;
|
|
411
402
|
}
|
|
412
|
-
if (id.match(regexCssId))
|
|
413
|
-
cssModules.add(id);
|
|
414
403
|
},
|
|
415
404
|
async load(id) {
|
|
416
405
|
const layer = entries.get(getPath(id));
|
package/dist/index.mjs
CHANGED
|
@@ -300,7 +300,6 @@ function GlobalModeDevPlugin({ uno, tokens, onInvalidate, extract, filter }) {
|
|
|
300
300
|
let base = "";
|
|
301
301
|
const tasks = [];
|
|
302
302
|
const entries = /* @__PURE__ */ new Map();
|
|
303
|
-
const cssModules = /* @__PURE__ */ new Set();
|
|
304
303
|
let invalidateTimer;
|
|
305
304
|
let lastUpdate = Date.now();
|
|
306
305
|
let lastServed = 0;
|
|
@@ -314,12 +313,8 @@ function GlobalModeDevPlugin({ uno, tokens, onInvalidate, extract, filter }) {
|
|
|
314
313
|
base = base.slice(0, base.length - 1);
|
|
315
314
|
}
|
|
316
315
|
function invalidate(timer = 10) {
|
|
317
|
-
const ids = [
|
|
318
|
-
...entries.keys(),
|
|
319
|
-
...cssModules.keys()
|
|
320
|
-
];
|
|
321
316
|
for (const server of servers) {
|
|
322
|
-
for (const id of
|
|
317
|
+
for (const id of entries.keys()) {
|
|
323
318
|
const mod = server.moduleGraph.getModuleById(id);
|
|
324
319
|
if (!mod)
|
|
325
320
|
continue;
|
|
@@ -331,14 +326,10 @@ function GlobalModeDevPlugin({ uno, tokens, onInvalidate, extract, filter }) {
|
|
|
331
326
|
}
|
|
332
327
|
function sendUpdate() {
|
|
333
328
|
lastUpdate = Date.now();
|
|
334
|
-
const ids = [
|
|
335
|
-
...entries.keys(),
|
|
336
|
-
...cssModules.keys()
|
|
337
|
-
];
|
|
338
329
|
for (const server of servers) {
|
|
339
330
|
server.ws.send({
|
|
340
331
|
type: "update",
|
|
341
|
-
updates: Array.from(
|
|
332
|
+
updates: Array.from(entries.keys()).map((i) => ({
|
|
342
333
|
acceptedPath: i,
|
|
343
334
|
path: i,
|
|
344
335
|
timestamp: lastUpdate,
|
|
@@ -399,8 +390,6 @@ function GlobalModeDevPlugin({ uno, tokens, onInvalidate, extract, filter }) {
|
|
|
399
390
|
entries.set(entry.id, entry.layer);
|
|
400
391
|
return entry.id;
|
|
401
392
|
}
|
|
402
|
-
if (id.match(regexCssId))
|
|
403
|
-
cssModules.add(id);
|
|
404
393
|
},
|
|
405
394
|
async load(id) {
|
|
406
395
|
const layer = entries.get(getPath(id));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unocss/vite",
|
|
3
|
-
"version": "0.32.
|
|
3
|
+
"version": "0.32.8",
|
|
4
4
|
"description": "The Vite plugin for UnoCSS",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"unocss",
|
|
@@ -43,11 +43,11 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@rollup/pluginutils": "^4.2.1",
|
|
46
|
-
"@unocss/config": "0.32.
|
|
47
|
-
"@unocss/core": "0.32.
|
|
48
|
-
"@unocss/inspector": "0.32.
|
|
49
|
-
"@unocss/scope": "0.32.
|
|
50
|
-
"@unocss/transformer-directives": "0.32.
|
|
46
|
+
"@unocss/config": "0.32.8",
|
|
47
|
+
"@unocss/core": "0.32.8",
|
|
48
|
+
"@unocss/inspector": "0.32.8",
|
|
49
|
+
"@unocss/scope": "0.32.8",
|
|
50
|
+
"@unocss/transformer-directives": "0.32.8",
|
|
51
51
|
"magic-string": "^0.26.1"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
@@ -56,6 +56,5 @@
|
|
|
56
56
|
"scripts": {
|
|
57
57
|
"build": "unbuild",
|
|
58
58
|
"stub": "unbuild --stub"
|
|
59
|
-
}
|
|
60
|
-
"readme": "# @unocss/vite\n\nThe Vite plugin for UnoCSS. Ships with the `unocss` package.\n\n> This plugin does not come with any default presets. You are building a meta framework on top of UnoCSS, see [this file](https://github.com/unocss/unocss/blob/main/packages/unocss/src/vite.ts) for an example to bind the default presets.\n\n## Installation\n\n```bash\nnpm i -D unocss\n```\n\n```ts\n// vite.config.ts\nimport Unocss from 'unocss/vite'\n\nexport default {\n plugins: [\n Unocss({ /* options */ }),\n ],\n}\n```\n\nAdd `uno.css` to your main entry:\n\n```ts\n// main.ts\nimport 'uno.css'\n```\n\n### Presetless usage\n\n```bash\nnpm i -D @unocss/vite\n```\n\n```ts\n// vite.config.ts\nimport Unocss from '@unocss/vite'\n\nexport default {\n plugins: [\n Unocss({\n presets: [\n /* no presets by default */\n ],\n /* options */\n }),\n ],\n}\n```\n\n## Modes\n\nThe Vite plugin comes with a set of modes that enable different behaviors.\n\n###### `global` (default)\n\nThis is the default mode for the plugin: in this mode you need to add the import of `uno.css` on your entry point.\n\nThis mode enables a set of Vite plugins for `build` and for `dev` with `HMR` support.\n\nThe generated `css` will be a global stylesheet injected on the `index.html`.\n\n###### `vue-scoped`\n\nThis mode will inject generated CSS to Vue SFC's `<style scoped>` for isolation.\n\n###### `svelte-scoped`\n\nThis mode will inject generated CSS to Svelte's `<style>` for isolation.\n\n###### `shadow-dom`\n\nSince `Web Components` uses `Shadow DOM`, there is no way to style content directly from a global stylesheet (unless you use `custom css vars`, those will penetrate the `Shadow DOM`), you need to inline the generated css by the plugin into the `Shadow DOM` style.\n\nTo inline the generated css, you only need to configure the plugin mode to `shadow-dom` and include `@unocss-placeholder` magic placeholder on each web component style css block.\n\n###### `per-module` (Experimental)\n\nThis mode will generate a CSS sheet for each module, can be scoped.\n\n###### `dist-chunk` (Experimental)\n\nThis mode will generate a CSS sheet for each code chunk on build, great for MPA.\n\n## \"Design in DevTools\"\n\nBecause of limitation of \"on-demand\" where the DevTools don't know those you haven't used in your source code yet. So if you want to try how things work by directly changing the classes in DevTools, just add the following lines to your main entry.\n\n```ts\nimport 'uno.css'\nimport 'virtual:unocss-devtools'\n```\n\n> ⚠️ Please use it with caution, under the hood we use [`MutationObserver`](https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver) to detect the class changes. Which means not only your manual changes but also the changes made by your scripts will be detected and included in the stylesheet. This could cause some misalignment between dev and the production build when you add dynamic classes based on some logic in script tags. We recommended adding your dynamic parts to the [safelist](https://github.com/unocss/unocss/issues/511) or setup UI regression tests for your production build if possible.\n\n`virtual:unocss-devtools` will be an empty bundle in production.\n\n## Frameworks\n\nSome UI/App frameworks have some caveats that must be fixed to make it work, if you're using one of the following frameworks, just apply the suggestions.\n\n### React\n\n**WARNING**: You should import the `uno.css` virtual module using `import 'virtual:uno.css'` instead `import 'uno.css'`. When you start the dev server first time, you'll need to update some style module to get it working (we're trying to fix it).\n\nIf you're using `@vitejs/plugin-react`:\n\n```ts\n// vite.config.js\nimport react from '@vitejs/plugin-react'\nimport Unocss from 'unocss/vite'\n\nexport default {\n plugins: [\n react(),\n Unocss({\n /* options */\n }),\n ],\n}\n```\n\nor if you're using `@vitejs/plugin-react-refresh`:\n\n```ts\n// vite.config.js\nimport reactRefresh from '@vitejs/plugin-react-refresh'\nimport Unocss from 'unocss/vite'\n\nexport default {\n plugins: [\n reactRefresh(),\n Unocss({\n /* options */\n }),\n ],\n}\n```\n\nIf you're using `@unocss/preset-attributify` you should remove `tsc` from the `build` script.\n\nIf you are using `@vitejs/plugin-react` with `@unocss/preset-attributify`, you must add the plugin before `@vitejs/plugin-react`.\n\n```ts\n// vite.config.js\nimport react from '@vitejs/plugin-react'\nimport Unocss from 'unocss/vite'\n\nexport default {\n plugins: [\n Unocss({\n /* options */\n }),\n react(),\n ],\n}\n```\n\nYou have a `React` example project on [examples/vite-react](https://github.com/unocss/unocss/tree/main/examples/vite-react) directory using both plugins, check the scripts on `package.json` and its Vite configuration file.\n\n### Preact\n\nIf you're using `@preact/preset-vite`:\n\n```ts\n// vite.config.js\nimport preact from '@preact/preset-vite'\nimport Unocss from 'unocss/vite'\n\nexport default {\n plugins: [\n preact(),\n Unocss({\n /* options */\n }),\n ],\n}\n```\n\nor if you're using `@prefresh/vite`:\n\n```ts\n// vite.config.js\nimport prefresh from '@prefresh/vite'\nimport Unocss from 'unocss/vite'\n\nexport default {\n plugins: [\n prefresh(),\n Unocss({\n /* options */\n }),\n ],\n}\n```\n\nIf you're using `@unocss/preset-attributify` you should remove `tsc` from the `build` script.\n\nIf you are using `@preact/preset-vite` with `@unocss/preset-attributify`, you must add the plugin before `@preact/preset-vite`.\n\n```ts\n// vite.config.js\nimport preact from '@preact/preset-vite'\nimport Unocss from 'unocss/vite'\n\nexport default {\n plugins: [\n Unocss({\n /* options */\n }),\n preact(),\n ],\n}\n```\n\nYou have a `Preact` example project on [examples/vite-preact](https://github.com/unocss/unocss/tree/main/examples/vite-preact) directory using both plugins, check the scripts on `package.json` and its Vite configuration file.\n\n### Svelte\n\nYou must add the plugin before `@sveltejs/vite-plugin-svelte`.\n\nTo support `class:foo` and `class:foo={bar}` add the plugin and configure `extractorSvelte` on `extractors` option.\n\nYou can use simple rules with `class:`, for example `class:bg-red-500={foo}` or using `shorcuts` to include multiples rules, see `src/App.svelte` on linked example project below.\n\n```ts\n// vite.config.js\nimport { svelte } from '@sveltejs/vite-plugin-svelte'\nimport Unocss from 'unocss/vite'\nimport { extractorSvelte } from '@unocss/core'\n\nexport default {\n plugins: [\n Unocss({\n extractors: [extractorSvelte],\n /* more options */\n }),\n svelte(),\n ],\n}\n```\n\nYou have a `Vite + Svelte` example project on [examples/vite-svelte](https://github.com/unocss/unocss/tree/main/examples/vite-svelte) directory.\n\n### Sveltekit\n\nTo support `class:foo` and `class:foo={bar}` add the plugin and configure `extractorSvelte` on `extractors` option.\n\nYou can use simple rules with `class:`, for example `class:bg-red-500={foo}` or using `shorcuts` to include multiples rules, see `src/routes/__layout.svelte` on linked example project below.\n\n```ts\n// svelte.config.js\nimport preprocess from 'svelte-preprocess'\nimport UnoCss from 'unocss/vite'\nimport { extractorSvelte } from '@unocss/core'\n\n/** @type {import('@sveltejs/kit').Config} */\nconst config = {\n // Consult https://github.com/sveltejs/svelte-preprocess\n // for more information about preprocessors\n preprocess: preprocess(),\n kit: {\n vite: {\n plugins: [\n UnoCss({\n extractors: [extractorSvelte],\n /* more options */\n }),\n ],\n },\n },\n}\n```\n\nYou have a `SvelteKit` example project on [examples/sveltekit](https://github.com/unocss/unocss/tree/main/examples/sveltekit) directory.\n\n### Web Components\n\nTo work with web components you need to enable `shadow-dom` mode on the plugin.\n\nDon't forget to remove the import for `uno.css` since the `shadow-dom` mode will not expose it and the application will not work.\n\n```ts\n// vite.config.js\nimport Unocss from 'unocss/vite'\n\nexport default {\n plugins: [\n Unocss({\n mode: 'shadow-dom',\n /* more options */\n }),\n ],\n}\n```\n\nOn each `web component` just add `@unocss-placeholder` to its style css block:\n```ts\nconst template = document.createElement('template')\ntemplate.innerHTML = `\n<style>\n:host {...}\n@unocss-placeholder\n</style>\n<div class=\"m-1em\">\n...\n</div>\n`\n```\n\nIf you're using [Lit](https://lit.dev/):\n\n```ts\n@customElement('my-element')\nexport class MyElement extends LitElement {\n static styles = css`\n :host {...}\n @unocss-placeholder\n `\n // ...\n}\n```\n\nYou have a `Web Components` example project on [examples/vite-lit](https://github.com/unocss/unocss/tree/main/examples/vite-lit) directory.\n\n#### `::part` built-in support\n\nYou can use `::part` since the plugin supports it via `shortcuts` and using `part-[<part-name>]:<rule|shortcut>` rule from `preset-mini`, for example using it with simple rules like `part-[<part-name>]:bg-green-500` or using some `shortcut`: check `src/my-element.ts` on linked example project below.\n\nThe `part-[<part-name>]:<rule|shortcut>` will work only with this plugin using the `shadow-dom` mode.\n\nThe plugin uses `nth-of-type` to avoid collisions with multiple parts in the same web component and for the same parts on distinct web components, you don't need to worry about it, the plugin will take care for you.\n\n```ts\n// vite.config.js\nimport Unocss from 'unocss/vite'\n\nexport default {\n plugins: [\n Unocss({\n mode: 'shadow-dom',\n shortcuts: [\n { 'cool-blue': 'bg-blue-500 text-white' },\n { 'cool-green': 'bg-green-500 text-black' },\n ],\n /* more options */\n }),\n ],\n}\n```\n\nthen in your web components:\n\n```ts\n// my-container-wc.ts\nconst template = document.createElement('template')\ntemplate.innerHTML = `\n<style>\n@unocss-placeholder\n</style>\n<my-wc-with-parts class=\"part-[cool-part]:cool-blue part-[another-cool-part]:cool-green\">...</my-wc-with-parts>\n`\n```\n\n```ts\n// my-wc-with-parts.ts\nconst template = document.createElement('template')\ntemplate.innerHTML = `\n<style>\n@unocss-placeholder\n</style>\n<div>\n <div part=\"cool-part\">...</div>\n <div part=\"another-cool-part\">...</div>\n</div>\n`\n```\n\n### Solid\n\n**WARNING**: You should import the `uno.css` virtual module using `import 'virtual:uno.css'` instead `import 'uno.css'`. When you start the dev server first time, you'll need to update some style module to get it working (we're trying to fix it).\n\n```ts\n// vite.config.js\nimport solidPlugin from 'vite-plugin-solid'\nimport Unocss from 'unocss/vite'\n\nexport default {\n plugins: [\n solidPlugin(),\n Unocss({\n /* options */\n }),\n ],\n}\n```\n\nYou have a `Vite + Solid` example project on [examples/vite-solid](https://github.com/unocss/unocss/tree/main/examples/vite-solid) directory.\n\n### Elm\n\nYou need to add the `vite-plugin-elm` plugin before UnoCSS's plugin.\n\n```ts\n// vite.config.js\nimport { defineConfig } from 'vite'\nimport elmPlugin from 'vite-plugin-elm'\nimport Unocss from 'unocss/vite'\n\nexport default defineConfig({\n plugins: [\n elmPlugin(),\n Unocss({\n /* options */\n }),\n ],\n})\n```\n\nYou have a `Vite + Elm` example project on [examples/vite-elm](https://github.com/unocss/unocss/tree/main/examples/vite-elm) directory.\n\n## License\n\nMIT License © 2021-PRESENT [Anthony Fu](https://github.com/antfu)\n"
|
|
59
|
+
}
|
|
61
60
|
}
|