涵烟客 發表於 2025-5-26 19:30:00

Blazor项目配置Tailwind CSS 4.x

<h2 id="前置">前置</h2>
<ol>
<li>已安装node.js,可使用npm</li>
<li>仅适用于目前的4.x(我使用的是4.1)。</li>
<li>基于.net 10 preview-4 Blazor Server Webapp 默认模板,但是这个关系不大。</li>
</ol>
<h2 id="安装">安装</h2>
<p>在根目录安装tailwindcss cli</p>
<pre><code>npm install tailwindcss @tailwindcss/cli
</code></pre>
<blockquote>
<p>实际上也可以在安装在wwwroot等目录,只要确保能配置正确的监视文件路径就行</p>
</blockquote>
<h2 id="编译与使用">编译与使用</h2>
<h3 id="1-使用">1. 使用</h3>
<pre><code>// 引用tailwindcss
// 以我的./wwwroot/app.css为例
// 其实直接新建一个新的空的css也行,并不必须在网页中引用这个输入文件。
@import "tailwindcss";
</code></pre>
<p>在razor页面中书写tailwind css相关样式</p>
<pre><code>@page "/"

&lt;PageTitle&gt;Home&lt;/PageTitle&gt;

&lt;h1 class="text-red-500 border-2"&gt;Hello, world!&lt;/h1&gt;
Welcome to your new app.
</code></pre>
<h3 id="2-编译">2. 编译</h3>
<h4 id="21-实时编译">2.1. 实时编译</h4>
<pre><code class="language-cs">// 通过cli实时监视文件变化来编译。缺点是每次打开项目的时候都要运行一次这个命令。
// -i 后面为输入文件,即步骤1中的引用了tailwindcss的css文件
// -0 后面为输出文件,记得在主页中引用,否则不会生效
// --wathc/-w 实时监视文件变化并编译,不加的话就是运行时编译一次
npx @tailwindcss/cli -i ./wwwroot/app.css -o ./wwwroot/output.css --watch
</code></pre>
<h4 id="22-构建时编译">2.2 构建时编译</h4>
<pre><code>// 2.2.1 修改项目文件,使项目在构建前先输出css文件
&lt;Project Sdk="Microsoft.NET.Sdk.Web"&gt;
    &lt;PropertyGroup&gt;
      &lt;TargetFramework&gt;net10.0&lt;/TargetFramework&gt;
      &lt;Nullable&gt;enable&lt;/Nullable&gt;
      &lt;ImplicitUsings&gt;enable&lt;/ImplicitUsings&gt;
    &lt;/PropertyGroup&gt;
    // 加入下面这一段
    &lt;Target Name="Tailwind" BeforeTargets="Build"&gt;
      &lt;Exec Command="npx @tailwindcss/cli -i ./wwwroot/app.css -o ./wwwroot/output.css"/&gt;
    &lt;/Target&gt;
&lt;/Project&gt;
</code></pre>
<h3 id="3-引用">3. 引用</h3>
<pre><code>&lt;!DOCTYPE html&gt;
&lt;html lang="en"&gt;
&lt;head&gt;
    &lt;meta charset="utf-8"/&gt;
    &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"/&gt;
    &lt;base href="/"/&gt;
       
        &lt;!--输入文件中如果本身没有样式,引用是没有意义的--&gt;
        &lt;!--&lt;link rel="stylesheet" href="@Assets["app.css"]"/&gt;--&gt;
       
        &lt;!--引用输出文件--&gt;
    &lt;link rel="stylesheet" href="@Assets["output.css"]"/&gt;
       
    &lt;link rel="stylesheet" href="@Assets["TwTest.styles.css"]"/&gt;
    &lt;ImportMap/&gt;
    &lt;link rel="icon" type="image/png" href="favicon.png"/&gt;
    &lt;HeadOutlet @rendermode="InteractiveServer"/&gt;
&lt;/head&gt;

&lt;body&gt;
&lt;Routes @rendermode="InteractiveServer"/&gt;
&lt;ReconnectModal/&gt;
&lt;script src="@Assets["_framework/blazor.web.js"]"&gt;&lt;/script&gt;
&lt;/body&gt;

&lt;/html&gt;
</code></pre>
<h3 id="成果">成果</h3>
<pre><code>@page "/"

&lt;PageTitle&gt;Home&lt;/PageTitle&gt;

&lt;h1 class="text-red-500 border-2"&gt;Hello, world!&lt;/h1&gt;
Welcome to your new app.
</code></pre>
<p>由于tailwind css和<code>bootstrap</code>中许多命名相同,虽然删除了自带的bootstrap引用,并只对home页面中的hello world添加了样式,但是整体视觉效果看起来差别不大。<br>
对用惯了bootstrap框架的开发者来说还挺友好。<br>
<img src="https://img2024.cnblogs.com/blog/2902654/202505/2902654-20250526192036717-1303264262.png"></p>
<h3 id="鸣谢">鸣谢</h3>
<p>以上综合了官网和部分网友的例子</p>
<blockquote>
<p>tailwind css https://tailwindcss.com/docs/upgrade-guide<br>
知乎-呆牛【在Blazor Server中使用tailwindcss】https://zhuanlan.zhihu.com/p/634290978</p>
</blockquote><br><br>
来源:https://www.cnblogs.com/morcom/p/18897342
頁: [1]
查看完整版本: Blazor项目配置Tailwind CSS 4.x