Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You clearly have a dependency on tailwindcss (if it can break you, you depend on it), and are using npm to fetch it (npx uses npm internally, they are installed together) so you can easily solve your problem by adding a couple json files with some version numbers in them. npx will pick up and use the version from your package.json, so no workflow change other than running `npm install …` once to generate package.json for your preferred semver specifier, and package-lock.json to guarantee your builds use a known-good version from now on.


FWIW Tailwind can be used as a standalone executable.

This is how Phoenix/Elixir bundles Tailwind without requiring npm.


I don’t care how you do it, just make getting your dependencies deterministic based on files committed to your repo!

Happily the Tailwind hex package encourages you configure a fixed version number, so you’ll never get surprise breakage as long as you’re committing your mix.lock file as well.

I’m only suggesting package.json/package-lock.json because their projects are already using the npm ecosystem to fetch the tailwind dependency. A Makefile that does `curl $TAILWIND_GITHUB_RELEASE_URL -o ./departing/tailwind` is fine too (this is what Tailwind.hex is doing under the hood).


AFAIK using the tailwindcss-cli without npm makes it impossible to use Tailwind plugins, such as DaisyUI.


This is not true, here is a demo projects which uses the Hex Tailwind and DaisyUI: https://github.com/naymspace/backpex/tree/develop/demo


Doesn't this still require NPM to install daisyui?


I believe that is true, although there is a project which bundles Tailwinds and DaisyUI into a single standalone executable:

https://github.com/dobicinaitis/tailwind-cli-extra

I have not tried this out yet, personally.


I just tried it... failed to load with very strange errors about postcss and unknown words.

FWIW, the tailwind binary from the official channel works great. I install it in my build.rs.


FFS we don't have local dependencies. Which means we don't have any local node_modules and have never ran npm install (there are no dependencies to install!). There is no lock file or dependencies.

Our Apps don't have any npm dependencies nor needs to run npm install by design, we're not going to start now, as already stated we're switching to `tailwindcss@v3` instead.

The point is this was a documented supported use-case which all our non node.js Apps used, which have now broken as a result of this release.


YOU DO have a local dependency.

Just add a mostly empty package.json like this:

    {
      "devDependencies": {
        "tailwindcss": "^3.4.17"
      }
    }
Run npm install once, and be done with it. You could even commit your node_modules if it helps.


We don't, we use npx to avoid needing any local dependencies.

`npx tailwind@v3` is the solution, definitely wont be committing node_modules to git, ever.


I find it really hard to not immediately be reminded of this:

https://xkcd.com/1172/


We only use npm dependencies and bloated node_modules folders [1] if we absolutely have to and for our non node.js Apps we explicitly don't.

[1] https://www.reddit.com/r/ProgrammerHumor/comments/6s0wov/hea...


But why not though

I also use tailwindcss in a non-node project, but use npm package / lock files to easily lock javascript / css dependencies and make renovate able to update them for me.


I've linked to why. We prefer #NoBuild solutions where we'd only use local npm deps/node_modules if we absolutely have to, and for non JS Apps we don't.


The node_modules folder is still somewhere on your system (~/.npm/_npx probably?) containing the same tailwindcss dependency files, but if it helps you sleep easier at night it’s okay to pretend it doesn’t exist.


No kidding, I thought global tools worked with fairy cloud dust, now I wont be able to sleep! But knowing there's not a going to be a bloated node_modules folder and local dependencies running different versions unnecessarily maintained in every project will definitely help.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: