在Nuxt3中使用Tailwind Css

2,963 阅读2分钟

在Nuxt3中使用Tailwind Css

本文以创建Nuxt3项目为起始进行记录。如有问题还望纠正讨论。

1. 创建Nuxt3项目

参考官网:v3.nuxtjs.org/getting-sta…

创建项目命令

npx nuxi init nuxt3-tailwind

进行项目目录

cd nuxt3-tailwind

进行npm安装,⌛️等待完成(如果偏好yarn也可以使用yarn进行安装,后续运行同理)

npm install

运行新建的项目,正常运行后进行下一步

npm run dev

2. 安装Tailwind Css

参考官网:tailwindcss.com/docs/guides…

注意⚠️:要先停止上一步运行的项目!

  • 安装Tailwind
npm install -D tailwindcss@latest postcss@latest autoprefixer@latest

注意⚠️:此处的命令和官网的有差异,未安装@nuxt/postcss8

  • 初始化Tailwind
npx tailwindcss init -p

项目根目录将会生成tailwind.config.jspostcss.config.js文件

  • 创建并引入Tailwind的样式

在项目根目录创建如下层级文件

- assets
	- css
		- tailwind.css

tailwind.css 填入如下内容

@tailwind base;
@tailwind components;
@tailwind utilities;

修改nuxt.config.ts文件,文件完整代码如下。

import { defineNuxtConfig } from 'nuxt3'

// https://v3.nuxtjs.org/docs/directory-structure/nuxt.config
export default defineNuxtConfig({
    css: ["~/assets/css/tailwind.css"],
    build: {
        postcss: {
            postcssOptions: {
                plugins: {
                    tailwindcss: {},
                    autoprefixer: {},
                },
            },
        },
    }
})
  • 修改tailwind.config.js文件,文件完整代码如下。

注意⚠️:这里没有按照官网文档引入nuxt.config模板文件

如果引入会报错:

ERROR  Importing directly from a nuxt.config file is not allowed. Instead, use runtime config or a module. [importing /nuxt.config.ts from index.html]

关于为何添加并注释"./app.vue"会在下文中提到。

module.exports = {
  content: [
    "./components/**/*.{vue,js}",
    "./layouts/**/*.vue",
    "./pages/**/*.vue",
    "./plugins/**/*.{js,ts}",
    // "./app.vue"
    // "./nuxt.config.{js,ts}",
  ],
  theme: {
    extend: {},
  },
  variants: {
    extend: {},
  },
  plugins: [],
}; 

接着,在项目根目录创建如下目录结构

- pages
	- index.vue

index.vue文件内容如下

<template>
  <div class="flex flex-row justify-center text-green-500 font-bold">pages - index.vue</div>
</template>

<script>
export default {
  name: "index"
}
</script>

<style scoped>

</style>
  • 修改app.vue文件如下

提示⏰:该文件中有tailwind样式的另一种引入方式,有兴趣的可以尝试尝试。

<template>
  <div>
    <div class="text-red-500">app.vue的tailwind未构建依赖</div>
    <nuxt-page></nuxt-page>
  </div>
</template>

// tailwind的另一种引入方式
<!--<script lang="ts" setup>-->
<!--import './assets/css/tailwind.css'-->
<!--</script>-->

  • 运行项目的启动命令“npm run dev” 观察效果。

可以看到此时,app.vue的文字样式没有生效,pages中的文字生效了。如文字描述是因为未构建依赖,如果将上面👆的"./app.vue"注释打开,重新运行。app.vue的样式才会生效。一般也比较少在app.vue中写标签, 不建议这样配置.

到此引入完成

文章头图

220220sun1.jpeg