main.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. var UglifyJS = require('uglify-es')
  2. var fs = require('fs')
  3. const { resolve } = require('path')
  4. // console.log(fs.existsSync)
  5. let ysNameArr = [
  6. 'marker-direction',
  7. 'map-easy-insert',
  8. 'map-easy-client',
  9. 'leaflet-src',
  10. 'layer.yj',
  11. 'FormatTime',
  12. 'hnCityTree',
  13. 'MovingMarker.zt',
  14. 'MovingMarker',
  15. 'poi',
  16. 'realtime',
  17. 'tileLayer.wmts',
  18. 'tileLayer.wmts.poi',
  19. 'tileLayer.wmts.realtime',
  20. 'titleLayer.wmts.realtime.zt'
  21. ]// 需要加载的文件名
  22. let ysJsArr = []// 要压缩的JS文件路径数组
  23. let ysOutJsArr = []// 输出的JS文件路径数组
  24. let codeArray = []// 压缩后的代码集合
  25. const options = {
  26. //* ******配置输入输出口*********/
  27. Entrypath: '../public/map-easy-client', // 需要批量压缩js的文件夹入口
  28. Outpath: '../dist/map-easy-client' // 批量压缩后js的文件夹
  29. }
  30. init()// 开始
  31. //* *********函数部分***************
  32. // 判断输出路径是否存在
  33. // 遍历入口文件夹
  34. function startLoop () {
  35. ysNameArr.forEach(itemPath => {
  36. ysJsArr.push(resolve(__dirname, options.Entrypath, itemPath + '.js'))
  37. ysOutJsArr.push(resolve(__dirname, options.Outpath, itemPath + '.js'))
  38. })
  39. toUglify()
  40. }
  41. // 导入uglifyCode
  42. function toUglify () {
  43. // console.log(ysJsArr)
  44. ysJsArr.forEach((itemPath) => {
  45. let code = fs.readFileSync(itemPath, 'utf8')
  46. let uglifyCode = UglifyJS.minify(code).code
  47. codeArray.push(uglifyCode)
  48. })
  49. }
  50. function judgeDir () {
  51. let isExists = fs.existsSync(resolve(__dirname, options.Outpath))
  52. if (isExists) {
  53. console.log(`${options.Outpath}目录已存在,进入下一步`)
  54. } else {
  55. console.log('指定目录不存在,进入下一步')
  56. creatFolder(options.Outpath)
  57. }
  58. ysOutJsArr.forEach((itemPath, i) => {
  59. startCompress(itemPath, codeArray[i], i + 1)
  60. })
  61. }
  62. // 创建文件夹,默认dist
  63. function creatFolder () {
  64. fs.mkdir(resolve(__dirname, options.Outpath))
  65. console.log(`创建${options.Outpath}成功`)
  66. }
  67. // 执行写入压缩后的代码
  68. function startCompress (itemPath, item, n = 0) {
  69. console.log(itemPath)
  70. console.log(`开始写入第${n}条压缩后代码`)
  71. fs.writeFileSync(itemPath, item)
  72. console.log('写入代码成功')
  73. }
  74. // 初始化
  75. function init () {
  76. console.log('初始化开始')
  77. startLoop()
  78. console.log('判断输出路径是否存在')
  79. judgeDir()
  80. }