jdists 強大的代碼塊預處理工具
背景
軟件發布流程
通常軟件發布時會將源文件做一次「預處理」再編譯成可執行文件,才發布到市場。
「預處理」的目的主要是出于以下幾點
- 配置線上運行環境,如調試服務地址需變更為實現線上地址;
- 減少執行程序的大小,移除沒有使用的代碼或資源并壓縮;
- 增加逆向工程的成本,給代碼做混淆(包括改變標識符和代碼結構),降低可讀性;
- 移除或增加調試功能,關閉或開啟一些特權后門。
一些 IDE 已在「編譯」時集成了「預處理」功能。
什么是 jdists
jdists 是一款強大的代碼塊預處理工具。
什么是「代碼塊」(code block)?
通常就是注釋或注釋包裹的代碼片段,用于表達各種各樣的含義。
舉個栗子
- TODO 注釋,表示代碼中待完善的地方
/* TODO 功能待開發 */
- wiredep 注釋,表示引入 bower 組件依賴的 css 資源
<!-- bower:css --> <link rel="stylesheet" href="bower_components/css/bootstrap.css" /> <!-- endbower -->
jshint.js 頂部注釋,表示版權聲明
/*! * JSHint, by JSHint Community. * * This file (and this file only) is licensed under the same slightly modified * MIT license that JSLint is. It stops evil-doers everywhere: * * Copyright (c) 2002 Douglas Crockford (www.JSLint.com) * ......... */
- jshint.js 另一部分注釋,表示代碼檢查配置項
/*jshint quotmark:double */ /*global console:true */ /*exported console */
總之,本文所指「代碼塊」就是有特殊意義的注釋。
什么是「代碼塊預處理」?
指在代碼編譯之前,將代碼文件按代碼塊粒度做一次編碼或解析。
舉個栗子,原本無效的代碼片段,經過編碼后變成了有效代碼。
預處理前:
/*<jdists> console.log('Hello World!'); </jdists>*/
預處理后:
console.log('Hello World!');
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!