91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

laravel-mix如何自動壓縮html模板文件

發布時間:2021-03-05 16:14:07 來源:億速云 閱讀:322 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關laravel-mix如何自動壓縮html模板文件的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

安裝依賴

cd /var/www/html/laravel-project

npm i -D laravel-mix@^5.x laravel-mix-template-minifier watch shelljs

壓縮處理

打開文件webpack.mix.js,并添加以下內容:

mix.minTemplate \= require("laravel-mix-template-minifier");

mix.minTemplate("storage/framework/views/\*.php", "storage/framework/views/", {
 collapseInlineTagWhitespace: true,
 collapseWhitespace: true,
 minifyCSS: true,
 minifyJS: true,
 processConditionalComments: true,
 removeAttributeQuotes: false,
 removeComments: true,
 removeTagWhitespace: false,
 trimCustomFragments: false,
});
壓縮的參數,見html-minifier(https://github.com/kangax/html-minifier?spm=a2c6h.14275010.0.0.70f559611yXtvP)

監聽文件變化

在項目根目錄新建文件compress.js,寫入以下內容:

let shell = require("shelljs");
let watch = require("watch");

let precessing = false;

watch.watchTree("./storage/framework/views", function(f, curr, prev) {
  if (!precessing) {
    precessing = true;
    
    shell.exec("npm run prod");
    
    setTimeout(() => {
      precessing = false;
    }, 5000);
  }
});

開機自啟監聽命令

以上步驟完成后,在命令行執行node compress.js,即可實現自動監聽壓損模板文件,可以打開網頁看到頁面內的<style>以及<script>中的內容已經壓縮了。打開storage/framework/views/中的模板文件,發現html已被壓縮成一行,如果模板中有包含php代碼,則不會去除php中的換行等。
有些頁面的js代碼不會壓縮,暫時沒找到什么原因。

由于監聽文件命令是常駐命令臺的,所以我們要設置開機自啟,并且后臺啟動該命令。

nano /etc/rc.d/rc.local

# 添加以下內容
cd /var/www/html/ysmj-laravel
nohup node compress.js > /var/www/html/laravel-project/compress.out  2>&1 &

# 保存文件。然后設置權限使其開機自啟
chmod +x /etc/rc.d/rc.local

優化

由于laravel自帶的package命令npm run prod中帶有--progress,長期使用,會導致壓縮日志compress.out日益過大。
package.json中,新添加compress命令,去除--progress參數,如下:

"scripts": {
    "dev": "npm run development",
    "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "watch-poll": "npm run watch -- --watch-poll",
    "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
    "compress": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
    "prod": "npm run production",
    "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
  },

然后compress.js文件需要修改,如下:

let shell = require("shelljs");
let watch = require("watch");

let precessing = false;

watch.watchTree("./storage/framework/views", function(f, curr, prev) {
  if (!precessing) {
    precessing = true;
    
    shell.exec("npm run compress");
    
    setTimeout(() => {
      precessing = false;
    }, 5000);
  }
});

感謝各位的閱讀!關于“laravel-mix如何自動壓縮html模板文件”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

长岛县| 鲁甸县| 揭西县| 馆陶县| 玉环县| 绩溪县| 承德县| 彰化县| 舞钢市| 东光县| 天长市| 汨罗市| 临城县| 太湖县| 云浮市| 昂仁县| 广灵县| 苏尼特左旗| 金坛市| 蓬莱市| 东乡县| 阜阳市| 苍南县| 永嘉县| 河北区| 广西| 贡嘎县| 丽江市| 龙里县| 赤壁市| 镇赉县| 象山县| 中西区| 苍山县| 酉阳| 宁远县| 平阳县| 马关县| 柘荣县| 越西县| 贵德县|