8.7 版本发布—WinterCG 兼容性第一部分
了解更多

在 GitHub 上查看

@nativescript/tailwind

警告

⚠️ @nativescript/[email protected] 对于颜色正常工作是必需的。在较旧的核心版本上,您可能会看到错误的颜色,因为 Tailwind CSS v3 使用 RGB/A 颜色表示法,该表示法已在 8.2.0 中实现,而之前的版本不支持它。

使在 NativeScript 中使用 Tailwind CSS 变得更加容易!

html
<label
  text="Tailwind CSS is awesome!"
  class="px-2 py-1 text-center text-blue-600 bg-blue-200 rounded-full"
/>

Tailwind CSS is awesome!

用法

注意

本指南假设您正在使用 @nativescript/[email protected],因为某些配置会自动完成。如果您尚未升级,请阅读下面的文档以了解与旧版 @nativescript/webpack 结合使用的信息。

安装 @nativescript/tailwindtailwindcss

cli
npm install --save @nativescript/tailwind tailwindcss

使用以下命令生成 tailwind.config.js

cli
npx tailwindcss init

调整 contentdarkModecorePlugins 以及您需要的任何其他设置,以下是我们推荐的值

js
// tailwind.config.js
const plugin = require('tailwindcss/plugin')

/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ['./app/**/*.{css,xml,html,vue,svelte,ts,tsx}'],
  // use the .ns-dark class to control dark mode (applied by NativeScript) - since 'media' (default) is not supported.
  darkMode: ['class', '.ns-dark'],
  theme: {
    extend: {},
  },
  plugins: [
    /**
     * A simple inline plugin that adds the ios: and android: variants
     *
     * Example usage:
     *
     *   <Label class="android:text-red-500 ios:text-blue-500" />
     *
     */
    plugin(function ({ addVariant }) {
      addVariant('android', '.ns-android &')
      addVariant('ios', '.ns-ios &')
    }),
  ],
  corePlugins: {
    preflight: false, // disables browser-specific resets
  },
}

更改您的 app.cssapp.scss 以包含 tailwind 实用程序

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

在您的应用中开始使用 tailwind。

使用自定义 PostCSS 配置

如果您需要自定义 postcss 配置,您可以创建一个 postcss.config.js(支持其他格式,请参阅 https://github.com/webpack-contrib/postcss-loader#config-files)文件并添加任何自定义项,例如

js
// postcss.config.js

module.exports = {
  plugins: [
    ['tailwindcss', { config: './tailwind.config.custom.js' }],
    '@nativescript/tailwind',
    '@csstools/postcss-is-pseudo-class',
  ],
}

注意

如果您想对 tailwindcss@nativescript/tailwind 应用自定义,则需要禁用自动加载

cli
ns config set tailwind.autoload false

仅当您对这两个插件中的任何一个进行更改时才需要此操作 - 因为默认情况下,postcss-loader 首先处理配置文件,然后处理传递给它的 postcssOptions。启用自动加载后,由于加载顺序,任何自定义都将被覆盖。将 tailwind.autoload 设置为 false 只是禁用这些插件的内部加载,并要求您按上述顺序将它们手动添加到您的 postcss 配置中。

与旧版 @nativescript/webpack 结合使用

此用法被视为旧版,将不再支持 - 但是我们在此处记录它,以防您的项目仍在使用旧版 @nativescript/webpack

查看说明
cli
npm install --save-dev @nativescript/tailwind tailwindcss postcss postcss-loader

创建包含以下内容的 postcss.config.js

js
module.exports = {
  plugins: [require('tailwindcss'), require('nativescript-tailwind')],
}

使用以下命令生成 tailwind.config.js

cli
npx tailwindcss init

调整 contentdarkModecorePlugins 以及您需要的任何其他设置,以下是我们推荐的值

js
// tailwind.config.js

module.exports = {
  content: ['./app/**/*.{css,xml,html,vue,svelte,ts,tsx}'],
  // use .dark to toggle dark mode - since 'media' (default) does not work in NativeScript
  darkMode: 'class',
  theme: {
    extend: {},
  },
  plugins: [],
  corePlugins: {
    preflight: false, // disables browser-specific resets
  },
}

更改您的 app.cssapp.scss 以包含 tailwind 实用程序

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

更新 webpack.config.js 以使用 PostCSS

找到定义不同文件类型规则/加载器的配置部分。要快速找到此块 - 搜索 rules: [

对于每个 css/scss 块,将 postcss-loader 附加到加载器列表中,例如

diff
{
  test: /[\/|\\]app\.css$/,
  use: [
    'nativescript-dev-webpack/style-hot-loader',
    {
      loader: "nativescript-dev-webpack/css2json-loader",
      options: { useForImports: true }
    },
+   'postcss-loader',
  ],
}

确保将 postcss-loader 附加到配置中的所有 css/scss 规则。

上一页
SwiftUI