Unable to install Tailwindcss into Rails 6

Viewed 1418

I'm currently trying to install Tailwind into a rails 6 application via Webpack but after following the docs the styles are not being applied to a view template as shown in the image. I have Tailwind v1.0.3. I also tried to upgrade Webpack to v4 so not sure if it's something due to that.

enter image description here

I have the following files:

javascript/css/application.css

@import "tailwindcss/base";
@import "tailwindcss/components";
@import "tailwindcss/utilities";

My packs/application.js looks as follow:

require("stylesheets/application.scss")

And my /postcss.config.js

module.exports = {
  plugins: [
    require('tailwindcss'),
    require('autoprefixer'),
    require('postcss-import'),
    require('postcss-flexbugs-fixes'),
    require('postcss-preset-env')({
      autoprefixer: {
        flexbox: 'no-2009'
      },
      stage: 3
    })
  ]
}

I can also see from the packaje.json file that Tailwind was in fact installed.

{
  "name": "artsy_space",
  "private": true,
  "dependencies": {
    "@rails/webpacker": "3.5",
    "tailwindcss": "^1.0.3",
    "vue": "^2.5.17",
    "vue-loader": "14.2.2",
    "vue-template-compiler": "^2.5.17"
  },
  "devDependencies": {
    "webpack-dev-server": "2.11.2"
  }
}

and the application.html.erb

        <!DOCTYPE html>
    <html>
      <head>
        <title>ArtsySpace</title>
        <%= csrf_meta_tags %>
        <%= csp_meta_tag %>

        <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
        <%= stylesheet_pack_tag 'stylesheets', media: 'all', 'data-turbolinks-track': 'reload' %>
        <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
      </head>

      <body>
          <p class="alert alert-error">
            <%= flash[:alert] %>
          </p>

          <p class="alert alert-info">
            <%= flash[:notice] %>
          </p>
        <%= yield %>
      </body>
    </html>

H

ere is a link to a PR in the repo.

Any idea what might it be?

3 Answers

It appears you might be requiring the wrong directory. Try changing:

require("stylesheets/application.scss")

to:

require("css/application.css")

Also, note that you're requiring a .scss file but it looks like the actual file is .css?

Try adding this line to your javascript/packs/application.js file

require("stylesheets/application.scss")

Everything else looks correct.

I'm also assuming you ran yarn add tailwindcss in your console.

If adding that file doesn't work, try running bin/webpack in your console.

If there are any error messages, they will help you debug the issue.

The only thing that worked for me is importing manually tailwind file into the application.js file.

require("./../../assets/stylesheets/application.tailwind.css")

and then running rails assets:clobber

Related