使用Express减少中间件

Gon*_*nys 8 css less node.js

我试图在我的nodejs项目上设置较少,当我从浏览器less-middleware调试请求我的页面时显示错误的路径和dest路径.当我'/public/css/index.css'从我的网页上询问时,我添加'/public/css/'了源路径.以下是我的配置:

app.use(lessMiddleware(__dirname+'/server/less',{
    debug: true,
    dest: __dirname+'/public/css',
    once: true
}));
Run Code Online (Sandbox Code Playgroud)

调试屏幕显示:

pathname : /public/css/index.css
source : D\Work\project\server\less\public\css\index.less
destination : D\Work\project\public\css\public\css\index.css
Run Code Online (Sandbox Code Playgroud)

即使我修复目标路径,我有源问题,我不想把我的较少的文件放入公共文件夹.有没有办法/public/css从编译少删除.我试图添加:

'preprocess.path': function(pathname, req){
    console.log(pathname);
}
Run Code Online (Sandbox Code Playgroud)

console.log从未表现出来.也许有一种方法可以不编译用户要求的每个css文件,只需编译那些文件较少的文件.
PS我正在使用的每个模块都在"*"版本之下.

Mic*_*hip 5

你可以试试这个(在浏览器中访问“/css/style.css”):

app.use(lessMiddleware({
  src: __dirname+"/server/less",
  dest: __dirname+"/public/css",
  prefix: "/css",
  // force true recompiles on every request... not the
  // best for production, but fine in debug while working
  // through changes
  force: true,
  debug: true
}));
Run Code Online (Sandbox Code Playgroud)


Gon*_*nys 1

其实这很简单。

app.use(lessMiddleware(__dirname+'/server/less/',{
    debug: true,
    dest: __dirname,
    force: true
}));
Run Code Online (Sandbox Code Playgroud)

现在,在/server/less我们创建的文件夹中public/css,一切都以正确的方式进行。另外,如果我们有文件夹,admin/css它也可以工作。技巧是在文件夹中创建文件夹/server/less