| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- 'use strict';
- const path = require('path');
- const fs = require('fs');
- const fsPro = require('fs-extra');
- const UglifyJS = require('uglify-js');
- console.log('[electron] [code_compress] moving frontend asset to egg public dir');
- console.log('[electron] [code_compress] start');
- class codeCompress {
- constructor(options = {}) {
- this.dirs = [
- 'app',
- 'electron'
- ];
- }
- /**
- * 备份 app、electron目录代码
- */
- backup () {
- let backupCodeDir = path.normalize(__dirname + '/../backup_code');
- if (!fs.existsSync(backupCodeDir)) {
- this.mkdir(backupCodeDir);
- this.chmodPath(backupCodeDir, '777');
- }
- for (let i = 0; i < this.dirs.length; i++) {
- // check code dir
- let codeDirPath = path.normalize(__dirname + '/../' + this.dirs[i]);
- if (!this.fileExist(codeDirPath)) {
- console.log('[electron] [code_compress] ERROR %s not exist', codeDirPath);
- return
- }
- // copy
- let targetDir = path.join(backupCodeDir, this.dirs[i]);
- fsPro.copySync(codeDirPath, targetDir);
- }
- }
- /**
- * 检查文件是否存在
- */
- fileExist (filePath) {
- try {
- return fs.statSync(filePath).isFile();
- } catch (err) {
- return false;
- }
- };
- mkdir (dirpath, dirname) {
- // 判断是否是第一次调用
- if (typeof dirname === 'undefined') {
- if (fs.existsSync(dirpath)) {
- return;
- }
- this.mkdir(dirpath, path.dirname(dirpath));
- } else {
- // 判断第二个参数是否正常,避免调用时传入错误参数
- if (dirname !== path.dirname(dirpath)) {
- this.mkdir(dirpath);
- return;
- }
- if (fs.existsSync(dirname)) {
- fs.mkdirSync(dirpath);
- } else {
- this.mkdir(dirname, path.dirname(dirname));
- fs.mkdirSync(dirpath);
- }
- }
-
- console.log('==> dir end', dirpath);
- };
- chmodPath (path, mode) {
- let files = [];
- if (fs.existsSync(path)) {
- files = fs.readdirSync(path);
- files.forEach((file, index) => {
- const curPath = path + '/' + file;
- if (fs.statSync(curPath).isDirectory()) {
- this.chmodPath(curPath, mode); // 递归删除文件夹
- } else {
- fs.chmodSync(curPath, mode);
- }
- });
- fs.chmodSync(path, mode);
- }
- };
- }
|