Hi, I’ve just recently thought about this myself, and I’ve basically tried to use Hugo + Tailwind without npm.
The styles are included like this:
{{ $styles := resources.Get "css/style.css" | minify | fingerprint }}
And at the root of the site, there’s a tailwind.config.js
with these settings (for this site, I needed HTML blocks in markdown, so we’re scanning markdown files too 
module.exports = {
content: [
'./layouts/**/*.{html,js}', // Paths to your template HTML files
'./content/**/*.{md,html}', // Paths to your Markdown files
// Add any other paths that might contain Tailwind classes
],
theme: {
extend: {},
},
plugins: [],
}
But I ran into a problem since I’m doing all of this in VS Code, and it turned out I had to run two terminals (as bep mentioned). On Windows, this can be solved by creating an instruction file for PowerShell. I have this go.ps1
file with the following content:
# Start Tailwind CLI
$tailwind = Start-Process tailwindcli -ArgumentList '-i assets/css/input.css -o assets/css/style.css --watch --minify' -PassThru -NoNewWindow
# Start Hugo
$hugo = Start-Process hugo -ArgumentList 'server --disableFastRender --cleanDestinationDir --printPathWarnings' -PassThru -NoNewWindow
# Handle interrupt signal
try {
# Wait for processes to finish
Wait-Process -Id $tailwind.Id, $hugo.Id
} catch {
# Stop processes in case of interruption
Stop-Process -Id $tailwind.Id
Stop-Process -Id $hugo.Id
}
I run this entire setup from the VS Code terminal with the command
.\go.ps1
As a result, I have both applications running in one terminal window. 
It basically works, though I’m not sure how I can install Tailwind’s prose plugin yet, as I haven’t tried it, but so far everything runs fast and without the resource-heavy npm. If there are any simpler solutions for setup, I’d be glad to hear them.
For now, this option suits me better than using npm. Before, I had to find a special version here (thanks to @bep for that) and spend a little more time. But I’m happy to hear from someone else who’s thought about this too!