【问题标题】:Use Tailwind css in a nrwl/nx Next js project在 nrwl/nx Next js 项目中使用 Tailwind css
【发布时间】:2020-05-01 21:42:24
【问题描述】:

如何让 Tailwind css 在 nrwl/nx Next js 项目中工作? 现在我正在使用通用方法,但它失败了:

[ error ] ./styles/main.css
Error: Didn't get a result from child compiler

我采用的常用方法:

  1. npx create-nx-workspace@latest my-org

  2. yarn add --dev @nrwl/next

  3. nx g @nrwl/next:application my-project

  4. yarn add tailwindcss autoprefixer postcss-loader @zeit/next-css

  5. cd apps/my-project

  6. 创建

postcss.config.js
module.exports = {
  plugins: [
    require('tailwindcss'),
    require('autoprefixer')
  ]
};
  1. 创建
next.config.js
const withCSS = require('@zeit/next-css');
module.exports = withCSS({});
  1. 创建
styles/main.css
@tailwind base;
@tailwind components;
@tailwind utilities;
  1. 在页面中创建默认的 _app.js
  2. 在 _app.js 中添加 import '../styles/main.css'

【问题讨论】:

    标签: next.js tailwind-css nrwl-nx


    【解决方案1】:

    我已经解决了这个问题。 这是我在 next.js 项目中添加尾风的方法

    1. 在工作区中安装tailwindautoprefixer
    2. 创建tailwind.config.jstailwind.css
    3. _app.tsx 处导入tailwind.css
    4. 创建next.config.js
    const path = require('path');
    
    module.exports = {
      webpack: config => {
        config.module.rules.push({
          test: /\.css$/,
          use: [
            {
              loader: 'postcss-loader',
              options: {
                ident: 'postcss',
                plugins: [
                  require('tailwindcss')(
                    path.resolve(__dirname, 'tailwind.config.js') // the absolute path of your tailwind.config.js
                  ),
                  require('autoprefixer')
                ]
              }
            }
          ],
          // the absolute path of the folder contains tailwind.css
          // I reuse tailwind.css across projects and libs so I put it in the workspace root
          // Maybe I should create a lib for it.
          include: path.resolve('./global') 
        });
    
        return config;
      }
    };
    

    如果您想将 Tailwind 与 lib 的故事书或其他框架的项目集成,则类似。只需找到将规则推送到 webpack 配置的方法即可。

    希望对你有帮助。

    【讨论】:

    • 嘿@Yan 感谢您发布这些步骤。我正在尝试按照这些步骤操作并得到此编译错误 ``` 错误 - ./pages/index.module.css 11:5 模块解析失败:意外令牌(11:5)文件已使用这些加载程序处理:* .. /../node_modules/postcss-loader/dist/cjs.js 你可能需要一个额外的加载器来处理这些加载器的结果。 | / | > html { |行高:1.15; / 1 / | -webkit-文本大小调整:100%; / 2 */ ``` 有什么建议吗?谢谢
    • 嘿@jerry 似乎问题出在css模块上。我没有使用它,顺便说一句,我现在不使用 nx 进行 monorepo 管理,所以不太确定如何正确配置它。你可以检查 nx 的 git 问题。我记得那里有一些关于这个的讨论,他们可能从那时起就支持 css 模块。
    【解决方案2】:

    如果您使用新版本 - 9.2 那么您需要这篇文章:

    https://nextjs.org/blog/next-9-2

    并更新了 Next.js 9.2 的设置示例:

    https://github.com/tailwindcss/setup-examples/pull/50

    我试过了,效果很好。

    【讨论】:

    • 谢谢。但这里的上下文是在 nrwl/nx 工作空间内。你试过了吗?
    猜你喜欢
    • 2023-01-19
    • 2021-11-29
    • 2021-08-16
    • 2022-01-04
    • 2022-01-21
    • 2021-01-24
    • 2020-02-10
    • 1970-01-01
    • 2018-05-26
    相关资源
    最近更新 更多