ecomfe / est

EFE Styling Toolkit based on Less
http://ecomfe.github.io/est
MIT License
397 stars 70 forks source link

在gulp里应该怎么用? #44

Closed YourWildDad closed 8 years ago

YourWildDad commented 8 years ago

我想在gulp里引用est,下面是我的写法:

var gulp = require('gulp');
var less = require('gulp-less');
var Est = require('less-plugin-est');
var est = new Est({});

gulp.task('compile-less', function() {
    gulp.src('./pages/css/*.less')
        .pipe(less({plugins: [est]}))
        .pipe(gulp.dest('./pages/css'));
});

运行的时候报错了,我第一行写了一个 .global-normalize(); ,运行报错是:

Potentially unhandled rejection [2] .global-normalize is undefined in file e:\project\web\pages\css\someless.less line no. 6

请问应该怎么正确的在gulp里使用est?

祝越办越好!

Justineo commented 8 years ago

查了一下,gulp-less 用了一个叫 accord 的库来加载 less。这个库在加载的时候覆盖了 less 对象的 version 字段,使得加载插件时检查版本的逻辑失效了。less.version 本来应该是 [2, 6, 1] 这种格式的,accord 给改成了从 package.json 里读的 2.6.1

我给 accord 提了一个 issue,因为它破坏了 less 的接口,是有问题的。当然插件本身做一下适配兼容也不是不可以,但是理论上不应该去根据第三方的错误修改来适配的。先看看对方怎么回复这个 issue 吧。暂时没有很好的方法支持 gulp。非要用的话,你自己可以找一下 lib/index.js 里的 install 方法,修改一下 version 判断的逻辑绕过去。

相关 issue 见:https://github.com/jenius/accord/issues/165

YourWildDad commented 8 years ago

好的,我把版本那里分割成了数组,可以运行了.