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,可以壓縮頁面javascript、css,去除頁面空格、註釋,刪除多餘屬性等操作
安裝命令: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貌似有熱更新
【Ionic】Ionic實現iOS與Android端程式碼『熱更新』與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