一尘不染

Node.js + Express.js。如何减少CSS?

node.js

我无法在快速工作区中渲染更少的CSS。
这是我当前的配置 (我的css / less文件 位于 “ public / stylo /”中)

app.configure(function()
{
    app.set('views'      , __dirname + '/views'         );
    app.set('partials'   , __dirname + '/views/partials');
    app.set('view engine', 'jade'                       );
    app.use(express.bodyDecoder()   );
    app.use(express.methodOverride());
    app.use(express.compiler({ src: __dirname + '/public/stylo', enable: ['less']}));
    app.use(app.router);
    app.use(express.staticProvider(__dirname + '/public'));
});

这是我的 main.jade文件

!!!
html(lang="en")
     head
         title Yea a title
         link(rel="stylesheet", type="text/css", href="/stylo/main.less")
         link(rel="stylesheet", href="http://fonts.googleapis.com/cssfamily=Droid+Sans|Droid+Sans+Mono|Ubuntu|Droid+Serif")
         script(src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js")
         script(src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.7/jquery-ui.min.js")
     body!= body

这是我的 main.less CSS

@import "goodies.css";

body 
{
    .googleFont;
    background-color     :  #000000;
    padding              :  20px;
    margin               :  0px;

    > .header
    {
        border-bottom    :  1px solid #BBB;
        background-color :  #f0f0f0;
        margin           :  -25px -25px 30px -25px; /* important */
        color            :  #333;
        padding          :  15px;
        font-size        :  18pt;
    }
}

这是我的好 东西

.rounded_corners(@radius: 10px)
{    
    -moz-border-radius   :  @radius;
    -webkit-border-radius:  @radius;
    border-radius        :  @radius;
}
.shadows(@rad1: 0px, @rad2: 1px, @rad3: 3px, @color: #999)
{
    -webkit-box-shadow   :  @rad1 @rad2 @rad3 @color;
    -moz-box-shadow      :  @rad1 @rad2 @rad3 @color;
    box-shadow           :  @rad1 @rad2 @rad3 @color;
}
.gradient (@type: linear, @pos1: left top, @pos2: left bottom, @color1: #f5f5f5, @color2: #ececec)
{
    background-image     :  -webkit-gradient(@type, @pos1, @pos2, from(@color1), to(@color2));
    background-image     :  -moz-linear-gradient(@color1, @color2);
}
.googleFont
{
    font-family          :  'Droid Serif';
}

很酷的交易。现在: 我通过npm安装的次数较少,
并且从另一篇帖子中听说@imports应该引用而.css不是.less。在任何情况下,我已经试过了 组合
开关.less用于.css在玉,少的文件,但没有成功。

如果您可以提供帮助或提供解决方案,我将不胜感激。

注意: 如果我输入任何ol’,玉部分都可以正常工作.css
注意2: 如果我通过命令行使用lessc,则较少编译。


阅读 229

收藏
2020-07-07

共1个答案

一尘不染

天哪,这些东西在路径如何工作上非常不一致,但是我发现了如何使它工作。

第一个问题与您的路径有关,并且compiler和都staticProvider需要编译器使用,/public并且编译器将挂接到该路径下的所有请求中。如果您不这样做,则编译器将尝试使用类似的路径/public/stylo/stylo

第二个问题在于@importin main.less文件以及较少的编译器是愚蠢的并且不能处理相对导入的事实。

@import "/public/stylo/goodies.css";在您的使用main.less将使它工作。

针对以下相对路径问题提交了错误lesshttps
//github.com/cloudhead/less.js/issues/issue/177

2020-07-07