less.js
less.js copied to clipboard
Cannot namespace detached ruleset
Input
#namespace {
@ruleset: {
foo: bar;
}
}
.my-selector {
#namespace.@ruleset();
}
Output
ModuleBuildError: Module build failed (from ../node_modules/less-loader/dist/cjs.js):
.my-selector {
#namespace.@ruleset();
^
Unrecognised input
Aside, the docs seem really unclear about whether a namespace should be declared as #namespace or #namespace(), but it doesn't make a difference either way, in this case.

You need remove @ and : in your case, and the difference between #namespace and #namespace() is ->
#namespace() is a pure mixin and only generate needed css where you use.
#namespace generate extra css and also can be used as a mixin.
@iChenLei Thanks a lot, this definitely does achieve what I wanted to do, although it seems my original point that you cannot namespace a detached ruleset is still correct.