Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can not find variable when a variable be created in plugin. #4241

Open
bestlyg opened this issue Oct 29, 2023 · 2 comments
Open

Can not find variable when a variable be created in plugin. #4241

bestlyg opened this issue Oct 29, 2023 · 2 comments
Labels

Comments

@bestlyg
Copy link

bestlyg commented Oct 29, 2023

To reproduce:

I want to define a variable in plugin. It will insert @x: 33px to current scope.

module.exports = class LessPluginBestMixin {
    install(less, pluginManager, functions) {
        functions.add("x", () => {
            return new less.tree.Declaration(
                "@x",
                new less.tree.Value(new less.tree.Keyword("33px"))
            );
        });
        functions.add("define_var", (key) => {});
    }
};

When I write the code to a less file:

@plugin "the-plugin-path";

div {
    x();
    width: @x;
}

It works and return the css code:

div {
    width: 33px;
}

But when I write the code to a less file:

@plugin "the-plugin-path";

@a: 1px;

div {
    height: @a;
    x();
    width: @x;
}

It not works and return a error cause can not find the variable of @x.

I had tried debug the source code of less and I found the code:
image
The height need read this variable and execute the function of variable and be cached.
It lead to the function of variable can not run again when the width read the @x.

I changed the code that will clear the cache when the function return a Declaration.

I tried to fix the code. URL

Current behavior:

Expected behavior:

Environment information:

  • less version:
  • nodejs version:
  • operating system:
@bestlyg bestlyg added the bug label Oct 29, 2023
@Vijay-948
Copy link

can you assign me I will try this

@bestlyg
Copy link
Author

bestlyg commented Oct 30, 2023

can you assign me I will try this

I've tried to fix it. URL

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants