less-loader 使用Mixins出错

.a, #b {
    color: red;
}
.mixin-class {
    .a();
}
.mixin-id {
    #b();
}
//配置
{
                test: /less\/.+\.less$/,
                use: [
                    'style-loader',
                    {
                        loader: 'css-loader',
                        options: {
                            modules: true,
                            localIdentName: '[local]-[hash:base64:5]'
                        }
                    },
                    'less-loader',
                    'postcss-loader'
                ]
            },
//错误信息
ERROR in ./~/css-loader?{"modules":true,"localIdentName":"[local]-[hash:base64:5]"}!./~/less-loader/dist!./~/postcss-loader/lib!./public/static/less/vols.packages.less
0|luoo-m   | Module build failed: Syntax Error
0|luoo-m   | (102:5) Unknown word
0|luoo-m   |   100 | }
0|luoo-m   |   101 | .mixin-class {
0|luoo-m   | > 102 |     .a();
0|luoo-m   |       |     ^
0|luoo-m   |   103 | }
0|luoo-m   |   104 | .mixin-id {
0|luoo-m   |  @ ./public/static/less/vols.packages.less 4:14-197 16:2-20:4 17:20-203
0|luoo-m   |  @ ./app/containers/vols/packages.js
0|luoo-m   |  @ ./app/routes/client/vols/index.js
0|luoo-m   |  @ ./app/routes/client.js
0|luoo-m   |  @ ./app/client.js

less的其他功能暂时没什么问题,但是用到这个混合代码就出错了,求解!

阅读 5.1k
2 个回答

你的样式用了 4 个 loader,按照顺序首先应用的是 postcss,这个错误是 postcss 解析不了这个语法抛出的,而不是 less。

clipboard.png
截图来自 https://autoprefixer.github.io/

所以将 less-loader 和 postcss-loader 交换一下位置应该就可以了。

有点不明白, .a() less里面是这么写的吗?? 应该是.a{}吧

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题