LESS-Middleware:Node.js 和 LESS 的完美搭配

简介:   LESS 是一个编写 CSS 的很好的方式 ,让你可以使用变量,嵌套规则,混入以及其它许多有用的功能,它可以帮助您更好地组织你的 CSS 代码。   最近我一直在研究 Node.js ,并想用 less-middleware 中间件,这样我可以很容易的在我的应用程序中使用 LESS 了。

  LESS 是一个编写 CSS 的很好的方式 ,让你可以使用变量,嵌套规则,混入以及其它许多有用的功能,它可以帮助您更好地组织你的 CSS 代码。

  最近我一直在研究 Node.js ,并想用  less-middleware 中间件,这样我可以很容易的在我的应用程序中使用 LESS 了。配置好以后,LESS-Middleware 能够自动处理编译你的 LESS 代码为 CSS 代码。

 

 

  如果你把 LESS 和 CSS 文件存储在同一个目录,配置很简单,但我想用不同的路径为我的源目录和目标目录,这个地方就有点问题了,所以在这里,我想我把发现的问题记录下来。
  如果您指定一个不同的 "src" 和 "dest" 的目录,您还必须提供 "prefix" 选项,它必须匹配跟在您的目标目录中后面的目录。下面是这个例子可以更好的让你理解:
var  lessMiddleware = require("less-middleware");

app.use(lessMiddleware({
	src: __dirname + "/less",
	dest: __dirname + "/public/css",
	prefix: "/css",
	force: true
}));
app.use(express.static(__dirname + "/public"));

  在这个例子中,我把源目录配置为我的应用程序的根目录下的 "/less" 目录,并让 CSS 输出到 "/public/css 目录。此外,你还需要指定 "prefix" 属性,以匹配跟在 "/public" 后面的目录,即 "/css" 目录。

  你还可以指定其它参数,上面指定了 force 参数,让每次请求的时候重新编译 LESS 文件,再结合自动刷新功能,这样在开发的时候修改样式代码都可以有即时的效果。

  最后在页面上引用 CSS 文件就和正常的一样了:

<link rel="stylesheet", type="text/css", href="css/styles.css">

升级和迁移  

  这边文章发布的时候,less-middleware 已更新到到 1.0.3 版本,上面的配置是针对 0.1.x 的,下面给大家介绍如果从 0.1.x 迁移到 1.0.x。

  首先,也是重要的变化——源目录参数的变化,之前是放在 options 参数里的,如下:

lessMiddleware({
  src: path.join(__dirname, '/public')
})

  因为源目录是必备参数,所以升级之后作为中间件的第一个参数,如下:

lessMiddleware(path.join(__dirname, '/public'))

  第二个变化是中间件参数和 LESS 参数分离,这样参数结构更清晰明了,如下:

lessMiddleware(source, [{options}], [{parserOptions}], [{compilerOptions}])

  options 参数是提供给中间件使用的,而后面两个参数对象不会影响中间件,是传递给 LESS 解析和编译器的。

  在这个调整之后,对应参数定义方式也要相应的调整,下面是一些对应的修改:

  • compress: 从 options 移除,需要在 compilerOptions 中定义;
  • dumpLineNumbers: 从 options 移除,需要再 parserOptions 中定义;
  • optimization: 从 options 移除,需要再 parserOptions 中定义;
  • paths: 从 options 移除,需要再 parserOptions 中定义;
  • preprocessor: 已经被移动到 preprocessor.less 中进行定义;
  • relativeUrls: 从 options 移除,需要再 parserOptions 中定义;
  • sourceMap: 从 options 移除,需要在 compilerOptions 中定义;
  • yuicompress: 从 options 移除,需要在 compilerOptions 中定义;

  第三个变化是新增加了参数同时移除了 prefix 和 treeFunctions 参数,让你可以更灵活的进行配置,如下:

  • postprocess.css: 在被保存之前,修改 CSS 编译输出;
  • preprocess.less: 在 LESS 被解析和编译前进行修改;
  • preprocess.path: 在被文件系统加载前,修改 LESS 路径;

  有了这几个参数,我们之前使用 prefix 实现的功能可以用下面的方式达到同样的效果:

preprocess: {
  path: function(pathname, req) {
    return pathname.replace(/^\/less\//, '/css');
  }
}

  更详细的信息,可以参考 less-middleware 官方文档。

 

您可能感兴趣的相关文章

 

本文链接:LESS-Middleware:Node.js 和 LESS 的完美搭配

编译来源:梦想天空 ◆ 关注前端开发技术 ◆ 分享网页设计资源

作者:山边小溪
主站:yyyweb.com 记住啦:)
欢迎任何形式的转载,但请务必注明出处。

相关文章
|
8月前
|
弹性计算 JavaScript 前端开发
前端开发基础6:Node.js和LESS预编译工具
本实验将介绍如何通过Node.js进行前端预编译。
107 1
|
17天前
|
JSON JavaScript 前端开发
❤Nodejs 第九章(token身份认证和express-jwt的安装认识)
【4月更文挑战第9天】Node.js第九章介绍了Token身份认证,特别是JWT(JSON Web Token)作为跨域认证的解决方案。JWT由Header、Payload和Signature三部分组成,用于在客户端和服务器间安全传输用户信息。前端收到JWT后存储在localStorage或sessionStorage中,并在请求头中发送。Express-JWT是一个中间件,用于解析JWT。基本用法包括设置secret和algorithms。注意安全问题,避免混合使用不同算法以防止降级攻击。
38 0
|
1月前
|
JavaScript Windows
Win7内网安装高版本的Node方法,亲测有效node-v16.16.0
Win7内网安装高版本的Node方法,亲测有效node-v16.16.0
51 0
|
2月前
|
JavaScript Linux 数据安全/隐私保护
node内网安装npm私服以及依赖包上传发布verdaccio
node内网安装npm私服以及依赖包上传发布verdaccio
89 1
|
10天前
|
JavaScript 前端开发 Linux
Node.js安装与配置
`Node.js` 是一个基于 `Chrome V8` 引擎的 `JavaScript` 运行环境,它允许开发者使用 `JavaScript` 编写服务器端代码。以下是 `Node.js` 的安装与配置的详细步骤:
Node.js安装与配置
|
11天前
|
JSON JavaScript 关系型数据库
❤Nodejs 第十六章(Nodejs环境安装和依赖使用)
【4月更文挑战第16天】本文介绍了Node.js环境安装和项目搭建步骤。检查Node.js和npm版本安装核心依赖,如Express(Web应用框架)、MySQL库、CORS(解决跨域问题)、body-parser(解析POST数据)、express-jwt和jsonwebtoken(JWT验证)、multer(文件上传处理)、ws(WebSocket支持),以及可选的dotenv(管理环境变量)和ejs(模板引擎)。完整源码可在Gitee开源项目[nexusapi](https://gitee.com/lintaibai/nexusapi)中找到。
22 0
|
17天前
|
JavaScript Linux Python
Linux 安装 Node.js | NPM
Linux 安装 Node.js | NPM
8 0
|
23天前
node安装常用工具
node安装常用工具
9 0
|
29天前
|
数据采集 JavaScript 前端开发
❤Nodejs 第一章(认识安装)
【4月更文挑战第1天】Nodejs 是一个跨平台的 JavaScript 运行时环境,基于Chrome的V8引擎。它以异步I/O和事件驱动为特点,用于构建高效、可扩展的网络应用。Node.js 使用npm作为包管理工具,拥有大量的模块资源。它适合IO密集型应用,但不适宜CPU密集型任务。其应用场景广泛,包括前端框架、后端服务、爬虫、桌面应用、移动应用、构建工具和CICD流程等。
72 1
❤Nodejs 第一章(认识安装)
|
1月前
|
Linux Windows
教你在Linux上安装Node并用Electron打包deb和rpm包
教你在Linux上安装Node并用Electron打包deb和rpm包
40 9