| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
10年前发布

jdists 强大的代码块预处理工具

 

jdists logo

背景

软件发布流程

code pretreatment

通常软件发布时会将源文件做一次「预处理」再编译成可执行文件,才发布到市场。

「预处理」的目的主要是出于以下几点

  • 配置线上运行环境,如调试服务地址需变更为实现线上地址;
  • 减少执行程序的大小,移除没有使用的代码或资源并压缩;
  • 增加逆向工程的成本,给代码做混淆(包括改变标识符和代码结构),降低可读性;
  • 移除或增加调试功能,关闭或开启一些特权后门。

一些 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!');

项目主页:http://www.open-open.com/lib/view/home/1438772495020

 本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1438772495020.html
jdists