国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

gulp插件解決瀏覽器緩存問題

TwIStOy / 1271人閱讀

摘要:以及列出的是本妹子最常用的插件,小伙伴們可以參考。案例地址二解決瀏覽器緩存問題為靜態文件添加唯一值,如。我們主要是用將轉換成可以在瀏覽器中運行的代碼。合并文件相關預處理器。

一、前言

有些簡單前端小項目,不需要涉及框架,前端打包壓縮的話本妹子還是喜歡用gulp
本文將用gulp-revgulp-rev-rewrite解決cdn緩存問題。
以及列出的是本妹子最常用的gulp插件,小伙伴們可以參考。
案例地址:https://github.com/raoenhui/g...

二、解決瀏覽器緩存問題 gulp-rev

1.為靜態文件添加唯一hash值,如 unicorn.css → unicorn-d41d8cd98f.css。

2.生成map映射文件,方便后面html更換文件名

gulp.task("js", () =>
    gulp.src(["./src/app.js", "./src/app2.js"])
        .pipe(gulp.dest("dist")) // 將源文件拷貝到打包目錄
        .pipe(rev())  
        .pipe(gulp.dest("dist")) // 將生成的hash文件添加到打包目錄
        .pipe(rev.manifest("js-rev.json"))
        .pipe(gulp.dest("dist")) // 將map映射文件添加到打包目錄
);

gulp.task("css",()=> {
    gulp.src("./src/*.css")
        .pipe(gulp.dest("dist")) // 將生成的hash文件添加到打包目錄
        .pipe(rev())
        .pipe(gulp.dest("dist"))// write rev"d assets to build dir
        .pipe(rev.manifest("css-rev.json"))
        .pipe(gulp.dest("dist"))   // 將map映射文件添加到打包目錄

});
gulp-rev-rewrite

根據rev生成的manifest.json map映射文件, 去替換html文件中的引用名稱,

gulp.task("html", () => {
  const jsManifest = gulp.src("dist/js-rev.json"); //獲取js映射文件
  const cssManifest = gulp.src("dist/css-rev.json"); //獲取css映射文件
  return gulp.src("./*.html")
    .pipe(revRewrite({manifest: jsManifest})) // 把引用的js替換成有版本號的名字
    .pipe(revRewrite({manifest: cssManifest})) // 把引用的css替換成有版本號的名字
    .pipe(gulp.dest("dist"))
});

替換成功

三、gulp其他常用插件 JS相關 gulp-babel

babel是一個 JavaScript 編譯器。我們主要是用將ES6轉換成可以在瀏覽器中運行的代碼。而gulp-babel 的用法、功能和babel 是一樣的。
先運行 npm install --save-dev gulp-babel @babel/core @babel/preset-env @babel/plugin-transform-runtime,裝好babel

const babel = require("gulp-babel");
gulp.task("js", () =>
    gulp.src("src/app.js")
        .pipe(babel({
            presets: ["@babel/env"], 
            plugins: ["@babel/transform-runtime"]
        }))
        .pipe(gulp.dest("dist"))
);
gulp-sourcemaps

找到編譯源文件,方便調試源碼。

const sourcemaps = require("gulp-sourcemaps");
gulp.task("js", () =>
    gulp.src("src/app.js")
    .pipe(sourcemaps.init())
        .pipe(babel({
            presets: ["@babel/env"], 
            plugins: ["@babel/transform-runtime"]
        }))
        .pipe(sourcemaps.write("."))
        .pipe(gulp.dest("dist"))
);

gulp-concat

合并js文件

const concat = require("gulp-concat");
gulp.task("js", function() {
  return gulp.src(["./src/app.js", "./src/app2.js"])
    .pipe(concat("app.js"))
    .pipe(gulp.dest("dist"));
});             
CSS相關 gulp-postcss

CSS預處理器。

const postcss = require("gulp-postcss");
const autoprefixer = require("autoprefixer"); //添加css兼容性寫法
gulp.task("css", function () {
    return gulp.src("./src/*.css")
        .pipe(postcss([ autoprefixer({
            browsers: [
                ">1%",
                "last 4 versions",
                "Firefox ESR",
                "not ie < 9", 
                "iOS >= 8",
                "Android > 4.4"
            ],
            flexbox: "no-2009",
        }) ]))
        .pipe(gulp.dest("./dest"));
});
gulp-clean-css

壓縮CSS

const cleanCSS = require("gulp-clean-css");
gulp.task("css", () => {
  return gulp.src("styles/*.css")
    .pipe(cleanCSS({compatibility: "ie8"}))
    .pipe(gulp.dest("dist"));
});
HTML相關 gulp-inline-source

將引用的jscss文件,插入html中,變成內聯式引用。

const inlinesource = require("gulp-inline-source");
gulp.task("html", function () {
    return gulp.src("./*.html")
        .pipe(inlinesource({
           compress: false     //是否壓縮成一行,默認為true壓縮
         }))
        .pipe(gulp.dest("./out"));
});
gulp-htmlmin

壓縮html

const htmlmin = require("gulp-htmlmin");
gulp.task("minify", () => {
  return gulp.src("src/*.html")
    .pipe(htmlmin({
                removeComments: true,  //去除備注
                collapseWhitespace: true //去除空白
              }))
    .pipe(gulp.dest("dist"));
});    
其他 del

刪除文件或文件夾

const del = require("del");
/* 清理一些不是必須的js,css文件 */
gulp.task("clean", function() {
    return del(["./dist/*.js",
        "./dist/*.css"
    ]).then(function() {
        console.log("delete unnecessary files for firecrackers");
    });
});
gulp-rename

重命名文件

const rename = require("gulp-rename");
gulp.task("html", function() {
.pipe(rename({
    dirname: ".",                // 路徑名
    basename: "index",            // 主文件名
    prefix: "pre-",                 // 前綴
    suffix: "-min",                 // 后綴
    extname: ".html"                // 擴展名
  }))
.pipe(gulp.dest("dist"))
});
其他鏈接

案例地址:https://github.com/raoenhui/gulpExample.git

原文地址:https://raoenhui.github.io/js/2019/03/03/gulp

Happy coding .. :)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/109297.html

相關文章

  • gulp組織小型項目小記

    摘要:目前正在開發一個系統,對于前端模塊化與打包這塊出現了一些選擇。采用模塊化及打包由于項目比較小,稍微了解后,覺得沒必要采用。組件化,目前比較流行的如等。項目較小需要交互更新頁面的并不多,沒有采用。 目前正在開發一個python markdown wiki系統,對于前端模塊化與打包這塊出現了一些選擇。1、采用webpack模塊化及打包由于項目比較小,稍微了解后,覺得沒必要采用webpack...

    2json 評論0 收藏0
  • gulp組織小型項目小記

    摘要:目前正在開發一個系統,對于前端模塊化與打包這塊出現了一些選擇。采用模塊化及打包由于項目比較小,稍微了解后,覺得沒必要采用。組件化,目前比較流行的如等。項目較小需要交互更新頁面的并不多,沒有采用。 目前正在開發一個python markdown wiki系統,對于前端模塊化與打包這塊出現了一些選擇。1、采用webpack模塊化及打包由于項目比較小,稍微了解后,覺得沒必要采用webpack...

    Heier 評論0 收藏0
  • gulp小結

    摘要:前兩者定位是工具,則是種模塊化解決方案。這四個都是模塊化的方案。類型默認值如果該項被設置為,那么將會以方式返回而不是文件的形式。整個工程壓縮完需要分鐘以上,使用緩存后只需要秒鐘。 gulp是什么? 一個自動化構建工具,基于nodejs的自動任務運行器。 為什么要使用它? 易于使用,易于學習。它能自動化地完成javascript/coffee/sass/less/html/image/c...

    Binguner 評論0 收藏0
  • 基于 Gulp 的簡易前端自動化工程搭建

    摘要:生成的文件如下由于給文件添加了哈希值,所以每次編譯出來的和都是不一樣的,這會導致有很多冗余文件,所以我們可以每次在生成文件之前,先將原來的文件全部清空。中也有做這個工作的插件,因此我們可以在編譯壓縮添加哈希值之前先將原文將清空。 原文鏈接:http://mrzhang123.github.io/2016/09/07/gulpUse/項目鏈接:https://github.com/MrZ...

    Blackjun 評論0 收藏0
  • 前端構建工具整理

    摘要:常見前端構建工具的分類和對比是附帶的包管理器,是內置的一個功能,允許在文件里面使用字段定義任務在這里,一個屬性對應一段腳本,原理是通過調用去運行腳本命令。 前文 端技術范圍不斷發展,前端開發不僅限于直接編寫html,css和javascript,Web應用日益龐大,代碼也更加龐大,因此許多新的思想(例如模塊化和工程化等)和框架(React和Vue等),以及新的語言(Es6 TypeSc...

    leo108 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<