Rumah hujung hadapan web Tutorial H5 LESS-Middleware:Node.js 和 LESS 的完美搭配

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

May 17, 2016 am 09:07 AM

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


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

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


       如果你把 LESS 和 CSS 文件存储在同一个目录,配置很简单,但我想用不同的路径为我的源目录和目标目录,这个地方就有点问题了,所以在这里,我想我把发现的问题记录下来。


  如果您指定一个不同的 "src" 和 "dest" 的目录,您还必须提供 "prefix" 选项,它必须匹配跟在您的目标目录中后面的目录。下面是这个例子可以更好的让你理解:


  1. var  lessMiddleware = require("less-middleware");



  2. app.use(lessMiddleware({

  3.     src: __dirname + "/less",

  4.     dest: __dirname + "/public/css",

  5.     prefix: "/css",

  6.     force: true

  7. }));

  8. app.use(express.static(__dirname + "/public"));
复制代码


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


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


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


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


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


  1. lessMiddleware({

  2.   src: path.join(__dirname, '/public')

  3. })
复制代码


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


  1. lessMiddleware(path.join(__dirname, '/public'))
复制代码


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


  1. 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 实现的功能可以用下面的方式达到同样的效果:


  1. preprocess: {

  2.   path: function(pathname, req) {

  3.     return pathname.replace(/^\/less\//, '/css');

  4.   }

  5. }
复制代码


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


Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menambah audio ke laman web html5 saya? Bagaimana untuk menambah audio ke laman web html5 saya? Mar 10, 2025 pm 03:01 PM

Artikel ini menerangkan bagaimana untuk membenamkan audio dalam HTML5 menggunakan & lt; audio & gt; elemen, termasuk amalan terbaik untuk pemilihan format (MP3, Ogg Vorbis), pengoptimuman fail, dan kawalan JavaScript untuk main balik. Ia menekankan menggunakan pelbagai audio f

Bagaimanakah saya menggunakan API Penglihatan Halaman Html5 untuk mengesan apabila halaman dapat dilihat? Bagaimanakah saya menggunakan API Penglihatan Halaman Html5 untuk mengesan apabila halaman dapat dilihat? Mar 13, 2025 pm 07:51 PM

Artikel ini membincangkan menggunakan API Penglihatan Halaman HTML5 untuk mengesan penglihatan halaman, meningkatkan pengalaman pengguna, dan mengoptimumkan penggunaan sumber. Aspek utama termasuk berhenti media, mengurangkan beban CPU, dan menguruskan analisis berdasarkan perubahan penglihatan.

Bagaimana untuk membuat permainan interaktif dengan HTML5 dan JavaScript? Bagaimana untuk membuat permainan interaktif dengan HTML5 dan JavaScript? Mar 10, 2025 pm 06:34 PM

Butiran artikel ini mewujudkan permainan HTML5 interaktif menggunakan JavaScript. Ia meliputi reka bentuk permainan, struktur HTML, gaya CSS, logik JavaScript (termasuk pengendalian acara dan animasi), dan integrasi audio. Perpustakaan JavaScript Penting (Phaser, PI

Bagaimanakah saya menggunakan tag meta viewport untuk mengawal skala halaman pada peranti mudah alih? Bagaimanakah saya menggunakan tag meta viewport untuk mengawal skala halaman pada peranti mudah alih? Mar 13, 2025 pm 08:00 PM

Artikel ini membincangkan menggunakan tag meta viewport untuk mengawal skala halaman pada peranti mudah alih, memberi tumpuan kepada tetapan seperti lebar dan skala awal untuk respons dan prestasi optimum.

Bagaimanakah saya mengendalikan privasi dan keizinan lokasi pengguna dengan API Geolokasi? Bagaimanakah saya mengendalikan privasi dan keizinan lokasi pengguna dengan API Geolokasi? Mar 18, 2025 pm 02:16 PM

Artikel ini membincangkan menguruskan privasi dan keizinan lokasi pengguna menggunakan API Geolocation, menekankan amalan terbaik untuk meminta kebenaran, memastikan keselamatan data, dan mematuhi undang -undang privasi.

Bagaimana cara menggunakan borang HTML5 untuk input pengguna? Bagaimana cara menggunakan borang HTML5 untuk input pengguna? Mar 10, 2025 pm 02:59 PM

Artikel ini menerangkan cara membuat dan mengesahkan borang HTML5. Ia memperincikan & lt; form & gt; Unsur, jenis input (teks, e -mel, nombor, dll), dan atribut (diperlukan, corak, min, max). Kelebihan bentuk html5 berbanding kaedah yang lebih lama, termasuk

Bagaimana saya menggunakan API Pemberitahuan HTML5 untuk memaparkan pemberitahuan desktop? Bagaimana saya menggunakan API Pemberitahuan HTML5 untuk memaparkan pemberitahuan desktop? Mar 13, 2025 pm 07:57 PM

Artikel ini menerangkan cara menggunakan API Pemberitahuan HTML5 untuk memaparkan pemberitahuan desktop, memberi tumpuan kepada keperluan kebenaran, penyesuaian, dan sokongan penyemak imbas.

Bagaimanakah saya menggunakan API Drag dan Drop HTML5 untuk antara muka pengguna interaktif? Bagaimanakah saya menggunakan API Drag dan Drop HTML5 untuk antara muka pengguna interaktif? Mar 18, 2025 pm 02:17 PM

Artikel ini menerangkan cara menggunakan API Drag dan Drop HTML5 untuk mewujudkan antara muka pengguna interaktif, memperincikan langkah -langkah untuk membuat unsur -unsur menyeret, mengendalikan peristiwa utama, dan meningkatkan pengalaman pengguna dengan maklum balas tersuai. Ia juga membincangkan perangkap biasa dengan a

See all articles