快递.js少编译器:得不到工作



app.js:

app.use(express.compiler({ src: __dirname + '/public', enable: ['less']}));
app.use(express.static(__dirname + '/public'));

在我的玉石观点中:

link(rel="stylesheet", type="text/css", href='/app/stylesheets/app.less)

我的文件更少了:public/app/stylesheets/app.less

当我请求我在 html 头中的页面时:

<link href="/app/stylesheets/app.less" type="text/css" rel="stylesheet">

并在服务器控制台中注明。

1(那么为什么快递甚至不尝试编译app.less?应该吗?

2(如果一切正常:应该在htm中链接

<link href="/app/stylesheets/**app.less**" ... >

还是快速应该在渲染时更改文件的扩展名?

<link href="/app/stylesheets/**app.css**" ... >

似乎编译器

((已从连接中删除,并且不再受支持,根据TJ Holowaychuck(Connect & Express的创建者(的说法:

https://github.com/visionmedia/express/issues/877


更新 2013-01-16

从Express 3.0.0开始,框架现在包含less-middleware,而不是以前在Connect中的compiler中间件。它的工作方式与旧中间件大致相同。

要将其添加到现有项目中,请将less-middleware添加到package.json并运行npm install然后将以下内容添加到配置中:

app.use(require('less-middleware')({ src: __dirname + '/public' }));
app.use(express.static(path.join(__dirname, 'public')));

在您的 Jade 模板中,您可以将其引用为普通的 CSS 文件:

link(rel='stylesheet', type='text/css', href='css/styles.css')

您的目录结构将如下所示:

myapp
+-public
  +-css
    +-styles.less

less-middleware将查找与请求的.css文件同名的 .less 文件。如果它找到一个,它将编译它并服务器生成的 CSS。

您可能希望从源代码管理中排除已编译的 CSS 文件。如果您使用的是 Git,则可以将.css添加到.gitignore文件中。

您可以通过中间件获得 LESS 编译以工作,与 Stylus 当前的工作方式相同。

编辑:与其尝试将[pull request][0]放入主LESS存储库,不如决定将其作为单独的包进行。

以下是使用 LESS.js 中间件的方法:

var lessMiddleware = require('less-middleware');
var app = express.createServer();
app.configure(function () {
    // Other configuration here...
    app.use(lessMiddleware({
        src: __dirname + '/public',
        compress: true
    }));
    app.use(express.static(__dirname + '/public'));
});

在你的 jade 文件中,你应该能够使用对 css 文件的引用:

link(rel="stylesheet", type='text/css', href='/app/stylesheets/app.css')

最新更新