tailwindlabs/prettier-plugin-tailwindcss

The plugin is broken, tailwind-classes-sorter tries to read a non-existent file

AlexAegis opened this issue · 3 comments

What version of prettier-plugin-tailwindcss are you using?

2.2.12

What version of Tailwind CSS are you using?

3.3.2

What version of Node.js are you using?

20.2.0

What package manager are you using?

pnpm

What operating system are you using?

Arch Linux

Reproduction URL

https://github.com/AlexAegis/prettier-plugin-tailwind-repro

Describe your issue

pnpm i
cd apps/svelte-example-app
pnpm lint:format_ # prettier --check .

Results in:

Checking formatting...
[error] Cannot find module '/home/alex/git/@aa/tailwindrepro/node_modules/.pnpm/prettier-plugin-tailwind@2.2.12_prettier@2.8.8_tailwindcss@3.3.2/node_modules/tailwindcss/stubs/defaultConfig.stub.js'
[error] Require stack:
[error] - /home/alex/git/@aa/tailwindrepro/node_modules/.pnpm/tailwind-classes-sorter@0.2.5/node_modules/tailwind-classes-sorter/lib/index.js
[error] - /home/alex/git/@aa/tailwindrepro/node_modules/.pnpm/prettier-plugin-tailwind@2.2.12_prettier@2.8.8_tailwindcss@3.3.2/node_modules/prettier-plugin-tailwind/lib/index.js
[error] - /home/alex/git/@aa/tailwindrepro/node_modules/.pnpm/prettier-plugin-tailwind@2.2.12_prettier@2.8.8_tailwindcss@3.3.2/node_modules/prettier-plugin-tailwind/prettier-plugin-tailwind.js
[error] - /home/alex/git/@aa/tailwindrepro/node_modules/.pnpm/prettier@2.8.8/node_modules/prettier/index.js
[error] - /home/alex/git/@aa/tailwindrepro/node_modules/.pnpm/prettier@2.8.8/node_modules/prettier/cli.js
[error] - /home/alex/git/@aa/tailwindrepro/node_modules/.pnpm/prettier@2.8.8/node_modules/prettier/bin-prettier.js
 ELIFECYCLE  Command failed with exit code 1.

The folder exists, but defaultConfig.stub.js is not there. Maybe it was renamed.

image

From the stacktrace:

/home/alex/git/@aa/tailwindrepro/node_modules/.pnpm/tailwind-classes-sorter@0.2.5/node_modules/tailwind-classes-sorter/lib/index.js

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const find_up_1 = __importDefault(require("find-up"));
class TWClassesSorter {
    /**
     * Creates an instance of TWClassesSorter.
     */
    constructor(opts = {}) {
        this.sortedMediaQueries = ['sm', 'md', 'lg', 'xl'];
        if (opts.config == undefined) {
            opts.config = TWClassesSorter.readConfig();
        }
        else if (typeof opts.config === 'string') {
            opts.config = TWClassesSorter.readConfig(opts.config);
        }
        this.classesPosition = opts.classesPosition || 'components-first';
        this.unknownClassesPosition = opts.unknownClassesPosition || 'start';
        if (!opts.nodeModulesPath) {
            opts.nodeModulesPath = path_1.default.resolve(process.cwd(), 'node_modules');
        }
        this.tailwindInstallPath = path_1.default.join(opts.nodeModulesPath, 'tailwindcss');
        this.defaultConfig = require(path_1.default.join(this.tailwindInstallPath, 'stubs/defaultConfig.stub.js'));

/home/alex/git/@aa/tailwindrepro/node_modules/.pnpm/prettier-plugin-tailwind@2.2.12_prettier@2.8.8_tailwindcss@3.3.2/node_modules/prettier-plugin-tailwind/lib/index.js

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const tailwind_classes_sorter_1 = __importDefault(require("tailwind-classes-sorter"));
const path_1 = __importDefault(require("path"));
const parsers_1 = __importDefault(require("./parsers"));
const options_1 = __importDefault(require("./options"));
const twClassesSorter = new tailwind_classes_sorter_1.default({
    nodeModulesPath: path_1.default.join(__dirname, '../../../node_modules'),
});
module.exports = {
    parsers: parsers_1.default(twClassesSorter),
    options: options_1.default,
};

Also opened an issue at the dependency but shouldn't something that reads directly from tailwinds install folder be at least under tailwindlabs? tqwewe/tailwind-classes-sorter#11

Hey! This error is coming from tailwind-classes-sorter which is a third-party library and not developed or maintained by our team so going to close this in favor of your issue on that repo. You shouldn’t need both packages installed though, prettier-plugin-tailwindcss will sort your classes.

tqwewe commented

Hi sorry it seems like you might've installed my original prettier plugin which i no longer maintain.