gulp 將 less 打包成 css

  • gulpfile.js
var gulp = require('gulp');
var less = require('gulp-less');
var cleanCSS = require('gulp-clean-css');
var LessAutoprefix = require('less-plugin-autoprefix');
var autoprefix = new LessAutoprefix({ browsers: ['last 2 versions'] });

gulp.task('less', function () {
  return gulp
    .src(['./src/styles/*.less', '!./src/styles/common/*.less'])
    .pipe(
      less({
        plugins: [autoprefix],
        javascriptEnabled: true
      })
    )
    .pipe(cleanCSS())
    .pipe(gulp.dest('./es/styles'));
});

gulp.task(
  'default',
  gulp.series(gulp.parallel('less'), function (cb) {
    cb();
  })
);

  • 說明:

gulp.src(['./src/styles/.less', '!./src/styles/common/.less']):這一行是指定 Gulp 要處理的源文件。它會(huì)匹配 ./src/styles/ 目錄下的所有 less 文件,但不包括 ./src/styles/common/ 目錄下的 less 文件。

pipe() 方法用于將操作連接起來,形成一個(gè)處理流程。

less({plugins: [autoprefix], javascriptEnabled: true}):這一行是使用 less 插件對(duì) less 文件進(jìn)行編譯。其中,plugins: [autoprefix] 表示使用 autoprefix 插件自動(dòng)添加 CSS 前綴,javascriptEnabled: true 表示允許在 less 文件中使用 JavaScript。

cleanCSS():這一行是使用 cleanCSS 插件對(duì)編譯后的 CSS 進(jìn)行壓縮。

gulp.dest('./es/styles'):這一行是指定處理后的文件輸出的目錄,即將處理后的文件保存到 ./es/styles 目錄下。

return gulp...:最后,這個(gè)任務(wù)返回了整個(gè)處理流程,這樣 Gulp 就知道這個(gè)任務(wù)何時(shí)完成。

命令行配置

"build:css": "rimraf ./es/styles && gulp --gulpfile ./gulpfile.js",

rimraf 是一個(gè) Node.js 內(nèi)置 的庫,提供了類似 Unix 命令 rm -rf 的功能,用于刪除文件和文件夾

讓 gulpfile 文件支持 import 替換 require

  1. 將 gulpfile.js 改名為 gulpfile.esm.js
import gulp from 'gulp';
import less from 'gulp-less';
import cleanCSS from 'gulp-clean-css';
import LessAutoprefix from 'less-plugin-autoprefix';
var autoprefix = new LessAutoprefix({ browsers: ['last 2 versions'] });

gulp.task('less', function () {
  return gulp
    .src(['./src/styles/*.less', '!./src/styles/common/*.less'])
    .pipe(
      less({
        plugins: [autoprefix],
        javascriptEnabled: true
      })
    )
    .pipe(cleanCSS())
    .pipe(gulp.dest('./es/styles'));
});

gulp.task(
  'default',
  gulp.series(gulp.parallel('less'), function (cb) {
    cb();
  })
);

  1. 修改 package.json 命令
"build:css": "rimraf ./es/styles && gulp --require esm",
  1. 安裝 esm
yarn add -D esm
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在現(xiàn)在的前端開發(fā)中,前后端分離、模塊化開發(fā)、版本控制、文件合并與壓縮、mock數(shù)據(jù)等等一些原本后端的思想開始...
    Charlot閱讀 5,688評(píng)論 1 32
  • Sass&Gulp 一、sass介紹 (一) SASS是一種CSS的開發(fā)工具,提供了許多便利的寫法,大大節(jié)省了設(shè)計(jì)...
    鋒享前端閱讀 1,660評(píng)論 0 3
  • Gulp是基于流的自動(dòng)化構(gòu)建工具,它不僅能對(duì)網(wǎng)站資源進(jìn)行優(yōu)化,而且在開發(fā)過程中能避免很多重復(fù)的工作,比如對(duì)相關(guān)文件...
    小強(qiáng)8088閱讀 409評(píng)論 0 0
  • 在現(xiàn)在的前端開發(fā)中,前后端分離、模塊化開發(fā)、版本控制、文件合并與壓縮、mock數(shù)據(jù)等等一些原本后端的思想開始逐漸滲...
    彬_仔閱讀 25,827評(píng)論 21 139
  • 由于鄙人才疏學(xué)淺,所以只能用最直白的方法來敘述比較簡單的事情。廢話不多,開始步入本文正題吧! 當(dāng)我們網(wǎng)站項(xiàng)目做完的...
    傳奇狗閱讀 5,153評(píng)論 5 7

友情鏈接更多精彩內(nèi)容