1. 程式人生 > >ionic利用gulp混淆程式碼與編譯熱更新

ionic利用gulp混淆程式碼與編譯熱更新

前言

如果你Ionic專案即有混淆又有熱更新機制,雖然常規目錄結構可以滿足二者,但編譯過程是非常複雜,ionic預設讀取的是www目錄,而混淆後的原始碼是打包在app中,再加上熱更新的配置也預設是生成在www中,這樣一來熱更新的md5對比檔案就存在不一致的情況,那麼問題來了,有辦法可以解決嗎?答案是肯定的,因為程式設計師永遠都是最懶的高階動物,我們可以把ionic目錄結構稍微更改一下,原始碼放在src目錄,利用gulp自動化構建工具,將src檔案對映到www目錄中,輕鬆一鍵搞定混淆與熱更新。

工具

gulp

簡介:自動化構建工具

全域性安裝命令:npm install –g gulp

專案中安裝命令:npm install gulp –save-dev

del

簡介:刪除檔案與目錄

安裝命令:npm install --save del

gulp-ng-annotate

簡介:為ng-angularJS新增依賴注入

安裝命令:npm install gulp-ng-annotate --save-dev

gulp-uglify

簡介:壓縮javascript檔案,減小檔案大小

安裝命令:npm install gulp-uglify --save-dev

gulp-clean-css

簡介:壓縮css檔案,減小檔案大小,並給引用url新增版本號避免快取

安裝命令:npm install gulp-clean-css --save-dev

gulp-htmlmin

簡介:使用gulp-htmlmin壓縮html,可以壓縮頁面javascriptcss,去除頁面空格、註釋,刪除多餘屬性等操作

安裝命令:npm i gulp-htmlmin --save-dev

gulp-shell

簡介:執行shell命令的庫

安裝命令:npm install --save-dev gulp-shell

配置gulpfile.js檔案

專案根目錄新建gulpfile.js檔案,檔案有變數 isRelease 控制混淆的開關

內容如下:

//require('')對應 node_modules 資料夾下各工具的資料夾名
var gulp = require('gulp');
var del = require('del');
var ngAnnotate = require('gulp-ng-annotate');
var uglify = require('gulp-uglify');
var cleanCSS = require('gulp-clean-css');
var htmlmin = require('gulp-htmlmin');
var shell = require('gulp-shell');

var isRelease = true; //true=生產模式;false=開發模式

var paths = {
    src_path: 'src/**/*'
};

//清空www目錄
gulp.task('clear_www', function () {
    return del('www/**/*');
});

//執行完 clear_www 才執行 copy_src
gulp.task('copy_src', ['clear_www'], function () {
    return gulp.src(paths.src_path)//複製src到www
        .pipe(gulp.dest('www'));
});

var minifyJs = function () {
    return gulp.src(['www/js/*.js', 'www/js/**/*.js'])
        .pipe(ngAnnotate({
            single_quotes: true
        }))//ng-angularJS新增依賴注入
        .pipe(uglify())//壓縮js
        .pipe(gulp.dest('www/js'));
}
//gulp.task('minify-js', ['ng_annotate'], function () {
gulp.task('minify-js', ['copy_src'], function () {
    if (isRelease) {
        minifyJs();
    }
    return true;
});

var minifyCss = function () {
    return gulp.src('www/css/*.css')
        .pipe(cleanCSS())//壓縮css
        .pipe(gulp.dest('www/css'));
}
gulp.task('minify-css', ['minify-js'], function () {
    if (isRelease) {
        minifyCss();
    }
    return true;
});

var minifyHtml = function () {
    return gulp.src(['www/page/*.html', 'www/page/**/*.html'])//多個檔案以陣列形式傳入
        .pipe(htmlmin({
            collapseWhitespace: true
        }))//壓縮html
        .pipe(gulp.dest('www/page'));
}
gulp.task('minify-html', ['minify-css'], function () {
    if (isRelease) {
        minifyHtml();
    }
    return true;
});

gulp.task('shell', ['minify-html'], shell.task([
  'echo',
  'cordova-hcp build'//編譯生成熱更新配置檔案
]));

gulp.task('default', ['clear_www', 'copy_src', 'minify-js', 'minify-css', 'minify-html', 'shell']);

//自動監測檔案變化執行watch任務
gulp.task('watch', function () {
    gulp.watch(paths.src_path, ['default']);
});


執行

vs2015 快捷鍵 ctrl+alt+backspace

開啟後雙擊default將執行任務

相關推薦

ionic利用gulp混淆程式碼編譯更新

前言 如果你Ionic專案即有混淆又有熱更新機制,雖然常規目錄結構可以滿足二者,但編譯過程是非常複雜,ionic預設讀取的是www目錄,而混淆後的原始碼是打包在app中,再加上熱更新的配置也預設是生成在www中,這樣一來熱更新的md5對比檔案就存在不一致的情況,那麼問題來了,有辦法可以解決嗎?答案是肯定的,

android混淆程式碼編譯

android studio已經提供了預設的混淆程式碼,我們要做的是, 1、在build.gradle中新增 buildTypes {         release {             m

Cordova - XCode10編譯更新插件錯誤解決方法!

orm 最終 插件 mes source std 錯誤提示 ica mru 操作系統:OSX10.14 XCode:10.1 熱更新插件:https://github.com/nordnet/cordova-hot-code-push 這個熱更新插件,在安卓下編譯,沒有問題

Cordova - XCode10編譯更新外掛錯誤解決方法!

作業系統:OSX10.14 XCode:10.1 熱更新外掛:https://github.com/nordnet/cordova-hot-code-push 這個熱更新外掛,在安卓下編譯,沒有問題,可以順利編譯,但是在最新版的XCode下編譯,卻出現錯誤了! 錯誤資訊:ld: library not

Android常用混淆程式碼集合(不斷更新中...)

Glide圖片載入框架混淆 # glide 的混淆程式碼 -keep public class * implements com.bumptech.glide.module.GlideModule -keep public enum com.bumptech.glide.load.r

利用CodePush對react-native專案更新(以android為例)

CodePush是提供給React native 或 Cordova開發的一箇中央倉庫,開發者可以將js、image等程式碼資源上傳上去,客戶端啟動的時候根據版本拉去CodePush上的程式碼進行覆蓋來實現客戶端的熱更新。 1,安裝CodePush npm install

U3D 程式碼、資源更新

原理:比較檔案的MD5值,不同,代表檔案有更改,版本需要改變 使用Tools 下面的make_res.bat檢測data資料夾下的檔案MD5值,生成res_list.lst和full_res_list.txt和vertion三個檔案。 1.要在生成目錄下的etc目錄下建立一

ionic3 安卓ios更新

一、ionic cordova plugin add cordova-hot-code-push-pluginionic cordova plugin add cordova-hot-code-push-local-dev-addonnpm install -g cordov

webpack-dev-server無法自動編譯更新

首先說明一下我用的是sublime text3 之前做nodejs開發的時候一直是手動node app.js,每次後臺改了一點程式碼都要重新跑一遍,開發效率實在不高,也瞭解webpack貌似有熱更新

IonicIonic實現iOSAndroid端程式碼更新Android升級下載功能 ( v1.3.x版本 )

熱更新的好處 通常ionic原始碼可包括(HTML,JavaScript,CSS檔案和其他資源),往常我們必須通過提交程式到應用市場,經過漫長的稽核後才可讓使用者更新,每改動一個小地方都需要重新打新版本。 現在ionic通過使用cordova外掛cordov

Android6.0啟動篇----程式碼下載編譯

話不多說,直接進入正文 我的系統環境:Windows 10+VMWare虛擬機器+Ubuntu14.04_x64位系統,3G記憶體,120G硬碟 (安裝虛擬機器時候最好選擇2G以上記憶體,提升效能,80G以上硬碟大小,我是120G,其實安卓原始碼並不大,編譯完成後一共才佔用50G不到,考慮到下載

Ionic在應用程式啟動前讀取應用程式啟動之前的配置檔案,避免程式碼頻繁編譯

1.app.module.ts 2.app.config.ts 1.新建app.config.ts檔案 2.內容: import { Inject, Injectable } from '@angular/core'; import { Http } from '@angular/

簽名-程式碼混淆Progurard-反編譯

簽名 路徑/檔名+.jks 簽名檔案通過 build  generate  signed apk 記住簽名庫的密碼 和key 的密碼  程式碼混淆 混淆程式碼 可以 減小APK體積,將類名簡單化,在反編

程式碼編譯連線執行過程

 1. 編譯 一個原始檔,經過編譯系統的處理,生成目標檔案的過程叫編譯。a.cpp經過編譯後在linux下會生成a.o這個目標檔案。 目標檔案主要用來描述程式在執行過程中需要放在記憶體中的內容,這些內容包括兩大類——程式碼和資料。相應的目標檔案也分成程式碼段和資料段。

Android 混淆程式碼總結 和 Android APK反編譯(最新更新)

http://blog.csdn.net/vipzjyno1/article/details/21039349/ http://blog.csdn.net/vipzjyno1/article/details/21039349/  反編譯 在學習Android開發的過程你

Java使用程式碼進行編譯執行

package com.java.basic.compiler; import javax.tools.JavaCompiler; import javax.tools.ToolProvider; import java.io.BufferedReader; import java.io.

利用OLLVM混淆Android Native程式碼篇一

Author: GeneBlue 這裡將會用兩篇文章解釋OLLVM混淆Android Native程式碼的方法和原理。篇一主要聚焦NDK中OLLVM的編譯構建和主要混淆模式的使用,並簡要解釋各混淆模式的效果;篇二主要研究預設混淆模式的實現並嘗試編寫除錯自定義Pass。

Java程式碼編譯編譯那些事兒

程式語言 在介紹編譯和反編譯之前,我們先來簡單介紹下程式語言(Programming Language)。程式語言(Programming Language)分為低階語言(Low-level Language)和高階語言(High-level Language)。 機器語言(Machine Language)

Unity3D更新之LuaFramework篇[09]--資源更新程式碼更新的具體實現

前言 在上一篇文章 Unity3D熱更新之LuaFramework篇[08]--熱更新原理及熱更伺服器搭建 中,我介紹了熱更新的基本原理,並且著手搭建一臺伺服器。 本篇就做一個實戰練習,真正的來實現熱更新功能。 一、準備工作 1、製作一個用於熱更新的介面 此前我製作了

Centos下Sphinx的下載編譯安裝

onf total osi training art exe .gz clas com 官方下載地址 http://sphinxsearch.com/downloads/release/ 百度雲下載地址 https://pan.baidu.com/s/1gfmPbd5