gulp 批量混淆代码

package.json

  1. {
  2.   “name”“camera”,
  3.   “version”“1.0.0”,
  4.   “description”“2019年4月15日14:12:51”,
  5.   “main”“config.js”,
  6.   “scripts”: {
  7.     “test”“echo \”Error: no test specified\” && exit 1″,
  8.     “build”“gulp copy && gulp min”
  9.   },
  10.   “devDependencies”: {
  11.     “babel-core”“^6.22.1”,
  12.     “babel-helper-vue-jsx-merge-props”“^2.0.3”,
  13.     “babel-loader”“^7.1.1”,
  14.     “babel-plugin-syntax-jsx”“^6.18.0”,
  15.     “babel-plugin-transform-runtime”“^6.22.0”,
  16.     “babel-plugin-transform-vue-jsx”“^3.5.0”,
  17.     “babel-polyfill”“^6.26.0”,
  18.     “babel-preset-env”“^1.3.2”,
  19.     “babel-preset-stage-2”“^6.22.0”,
  20.     “gulp”“^3.9.1”,
  21.     “gulp-babel”“^6.0.0”,
  22.     “gulp-htmlmin”“^5.0.1”,
  23.     “gulp-javascript-obfuscator”“^1.1.5”,
  24.     “gulp-sftp”“^0.1.5”,
  25.     “gulp-uglify”“^3.0.2”,
  26.     “gulp-util”“^3.0.8”,
  27.     “javascript-obfuscator”“^0.18.1”,
  28.     “minify”“^4.1.1”
  29.   },
  30.   “author”“”,
  31.   “license”“ISC”
  32. }

gulpfile.js

  1. const gulp = require(‘gulp’)
  2. const path = require(‘path’)
  3. const uglify = require(‘gulp-uglify’)
  4. const babel = require(‘gulp-babel’);
  5. const htmlmin = require(‘gulp-htmlmin’);
  6. const javascriptObfuscator = require(‘gulp-javascript-obfuscator’);
  7. /**
  8.  * 拷贝
  9.  */
  10. gulp.task(‘assetsCopy’, function () {
  11.   return gulp.src(‘./assets/**’)
  12.     .pipe(gulp.dest(‘./dist/assets’))
  13. });
  14. gulp.task(‘pageCopy’, function () {
  15.   return gulp.src(‘./page/**’)
  16.     .pipe(gulp.dest(‘./dist/page’))
  17. });
  18. gulp.task(‘pageJsCopy’, function () {
  19.   return gulp.src(‘./pageJs/**’)
  20.     .pipe(gulp.dest(‘./dist/pageJs’))
  21. });
  22. gulp.task(‘fileCopy’, function () {
  23.   return gulp.src(‘./file/**’)
  24.     .pipe(gulp.dest(‘./dist/file’))
  25. });
  26. gulp.task(‘htmlCopy’, function () {
  27.   return gulp.src(‘./*.html’)
  28.     .pipe(gulp.dest(‘./dist’))
  29. });
  30. /**
  31.  * 共通js
  32.  */
  33. gulp.task(‘commonJs’, function () {
  34.   /////找到需要压缩的文件
  35.   gulp.src([‘assets/js/common.js’, ‘assets/js/index.js’, ‘assets/js/display.js’, ‘assets/js/login.js’, ‘assets/js/upload.js’]) ////  /**/  表示js目录下的任意层级的目录
  36.     .pipe(babel())
  37.     /////压缩文件
  38.     .pipe(uglify())
  39.     // 混淆
  40.     .pipe(javascriptObfuscator({
  41.       stringArrayEncoding: true
  42.     }))
  43.     /////另存压缩后文件
  44.     .pipe(gulp.dest(‘dist/assets/js’));
  45. });
  46. /**
  47.  * 内嵌页面js
  48.  */
  49. gulp.task(‘pageJs’, function () {
  50.   /////找到需要压缩的文件
  51.   gulp.src(‘pageJs/*.js’) ////  /**/  表示js目录下的任意层级的目录
  52.     .pipe(babel())
  53.     /////压缩文件
  54.     .pipe(uglify())
  55.     // 混淆
  56.     .pipe(javascriptObfuscator())
  57.     /////另存压缩后文件
  58.     .pipe(gulp.dest(‘dist/pageJs’));
  59. });
  60. /**
  61.  * 页面html
  62.  */
  63. gulp.task(‘pageHtml’, function () {
  64.   const options = {
  65.     removeComments: true//清除HTML注释
  66.     collapseWhitespace: true//压缩HTML
  67.     collapseBooleanAttributes: false//省略布尔属性的值 <input checked=”true”/> ==> <input />
  68.     removeEmptyAttributes: false//删除所有空格作属性值 <input id=”” /> ==> <input />
  69.     removeScriptTypeAttributes: true//删除<script>的type=”text/javascript”
  70.     removeStyleLinkTypeAttributes: true//删除<style>和<link>的type=”text/css”
  71.     minifyJS: true//压缩页面JS
  72.     minifyCSS: true //压缩页面CSS
  73.   };
  74.   gulp.src(‘page/*.html’)
  75.     .pipe(htmlmin(options))
  76.     .pipe(gulp.dest(‘dist/page’));
  77. });
  78. /**
  79.  * 配置文件
  80.  */
  81. gulp.task(‘configJs’, function () {
  82.   /////找到需要压缩的文件
  83.   gulp.src(‘./config.js’) ////  /**/  表示js目录下的任意层级的目录
  84.     .pipe(babel())
  85.     /////压缩文件
  86.     .pipe(uglify())
  87.     // 混淆
  88.     .pipe(javascriptObfuscator({
  89.       stringArrayEncoding: true
  90.     }))
  91.     /////另存压缩后文件
  92.     .pipe(gulp.dest(‘dist’));
  93. });
  94. // 执行任务
  95. gulp.task(‘copy’, [‘assetsCopy’, ‘pageCopy’, ‘pageJsCopy’, ‘fileCopy’, ‘htmlCopy’])
  96. gulp.task(‘min’, [‘commonJs’, ‘pageJs’, ‘pageHtml’, ‘configJs’])

安装依赖

npm install

执行命令

npm run build

本文链接地址: gulp 批量混淆代码

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注