首页 > 其他分享 >vite tailwindcss@next omi

vite tailwindcss@next omi

时间:2024-09-14 19:23:52浏览次数:1  
标签:count omi value tailwindcss import true vite

pnpm i @tailwindcss/vite@next omi tailwindcss@next vite

package.json:

{
	"type": "module",
	"dependencies": {
		"@tailwindcss/vite": "4.0.0-alpha.24",
		"omi": "^7.7.0",
		"tailwindcss": "4.0.0-alpha.24",
		"vite": "^5.4.5"
	},
	"scripts": {
		"build": "vite build",
		"dev": "vite dev",
		"preview": "vite preview"
	}
}

vite.config.ts:

import tailwindcss from '@tailwindcss/vite'
import { defineConfig } from 'vite'

export default defineConfig({
    plugins: [tailwindcss()],
})

tsconfig.json:

{
    "compilerOptions": {
        "target": "ES5",
        "experimentalDecorators": true,
        "useDefineForClassFields": true,
        "lib": [
            "ES6",
            "DOM",
            "DOM.Iterable"
        ],
        "skipLibCheck": true,
        /* Bundler mode */
        "allowImportingTsExtensions": true,
        "isolatedModules": true,
        "noEmit": true,
        "jsx": "preserve",
        "jsxFactory": "h",
        "jsxFragmentFactory": "h.f",
        /* Linting */
        "strict": true,
        "noUnusedLocals": true,
        "noUnusedParameters": true,
        "noFallthroughCasesInSwitch": true
    },
    "include": [
        "src"
    ],
    "references": [
        {
            "path": "./tsconfig.node.json"
        }
    ]
}

tsconfig.node.json:

{
  "compilerOptions": {
    "composite": true,
    "skipLibCheck": true,
    "module": "ESNext",
    "moduleResolution": "bundler",
    "allowSyntheticDefaultImports": true
  },
  "include": [
    "vite.config.ts"
  ]
}

index.html:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <counter-demo />
    <script src="src/index.tsx" type="module"></script>
</body>

</html>

src/index.css:

@import "tailwindcss";

src/index.tsx:

import { signal, tag, Component, h } from "omi";
import css from "./index.css?inline";

const count = signal(0);

function add() {
	count.value++;
}

function sub() {
	count.value--;
}

@tag("counter-demo")
class CounterDemo extends Component {
	static css = css;

	content() {
		const gt = count.value >= 0;
		if (gt) {
			return <span class="text-green-500">{count.value}</span>;
		}
		return <span class="text-red-500">{count.value}</span>;
	}

	render() {
		return (
			<>
				<button onClick={sub} type="button">
					-
				</button>
				{this.content()}
				<button onClick={add} type="button">
					+
				</button>
			</>
		);
	}
}

标签:count,omi,value,tailwindcss,import,true,vite
From: https://www.cnblogs.com/soarowl/p/18414581

相关文章

  • vscode下vue3+vite+ts+eslint项目配置
    一、创建项目pnpmcreatevue@latest注意:是否引入ESLint用于代码质量检测?选择否二、安装依赖pnpmi-Deslint@antfu/eslint-config三、在项目根目录创建文件:eslint.config.js//eslint.config.jsimportantfufrom'@antfu/eslint-config'exportdefaultantfu({......
  • AtomicStampedReference
    概述An{@codeAtomicStampedReference}maintainsanobjectreferencealongwithaninteger"stamp",thatcanbeupdatedatomically.包含一个对象引用+一个int的戳(Stamp),能被原子更新;Implementationnote:Thisimplementationmaintainsstampedref......
  • 前端基本功——搞懂Promise
    写在前面:大家好,我是山里看瓜,该系列文章是为了帮助大家不管面试还是开发对前端的一些基本但是很重要的知识点认识更加深入和全面。想写这个系列文章的初衷是:我发现前端的很多基本知识,使用起来很简单,定义看起来也很简单。很多人你在问他相关问题的时候,他也能说上几句。但是为什么......
  • 前端基本功——面试必问系列(1):都2024了,还没吃透Promise?一文搞懂
    写在前面:大家好,我是山里看瓜,该系列文章是为了帮助大家不管面试还是开发对前端的一些基本但是很重要的知识点认识更加深入和全面。想写这个系列文章的初衷是:我发现前端的很多基本知识,使用起来很简单,定义看起来也很简单。很多人你在问他相关问题的时候,他也能说上几句。但是为什么......
  • sipp模拟uas发送reinvite
    概述freeswitch是一款简单好用的VOIP开源软交换平台。在更新了sipp模拟update的配置方案之后,我希望对比一下fs对update和reinvite的处理流程。本文档记录sipp的配置方案,该方案中包含了update和reinvite的信令。环境CentOS7.9freeswitch1.10.7sipp.3.6.2方案描述测试......
  • vue3 + vite 使用 vite-plugin-svg-icons 插件显示本地 svg 图标的方法
    1.安装vite-plugin-svg-icons插件yarnaddvite-plugin-svg-icons-D//或者npminstallvite-plugin-svg-icons-D//或者pnpminstallvite-plugin-svg-icons-D2.使用vite-plugin-svg-icons插件2.1在项目根目录查找vite.config.js,进行配置import{createS......
  • 【影像组学pyradiomics学习笔记】png图像提取组学特征
    1、提取单张png图像组学特征示例:importSimpleITKassitkimportnumpyasnpimportmatplotlib.pyplotaspltfromradiomicsimportfeatureextractorimportosimportcv2defload_image(image_path):image=cv2.imread(image_path,cv2.IMREAD_GRAYSCALE)#......
  • vite如何打包vue3插件为JSSDK
    安装vitenpmcreatevite@latest你还可以通过附加的命令行选项直接指定项目名称和你想要使用的模板。例如,要构建一个Vite+Vue+ts项目,运行:#npm7+,需要添加额外的--:npmcreatevite@latestmy-vue-app----templatevue-ts查看create-vite以获取每个模板的更多细......
  • 给你一个promise数组,我需要并行执行,并且数组里面所有promise全部抛出错误之后,才抛出错
    今天面试,遇到如标题这么一个问题,真的给我问懵逼了,一开始想说使用promise.all,但是不行,因为promise.all只要有一个抛出错误了,整个promise.all就全部失败了。当时给我问的支支吾吾的打答不出来,并且还需要并行执行,想破头了都想不出来。后面回来重新学习ECMAScript才发现,使用一个API,pro......
  • 在Vue 3中优化异步数据加载:利用`onMounted`与`Promise.all`
    在Vue3中优化异步数据加载:利用onMounted与Promise.all在构建现代Web应用时,异步数据加载是不可或缺的一部分。Vue3的CompositionAPI通过提供onMounted生命周期钩子和Promise.all方法,为我们提供了一种高效且优雅的方式来处理这种需求。本文将深入探讨如何在Vue3中利用这......