UNPKG

bm_scaffold_async_router_test1

Version:

本木前端脚手架-异步路由版-测试专用

41 lines (40 loc) 1.48 kB
// 测试反馈有很小几率在脚手架打包时无法为Html文件中写入打包后的带版本号的 // main_xxxx.js\vendor_xxxx.js // 此插件用于在打包后检测是否写入了带版本号的文件 // 如果写入失败则再次尝试写入 const path = require('path'); const fs = require('fs'); function versionCheck(){ let paths = path.join(process.cwd(), 'dist/js/'); let fileNames = []; // 读取打包后生成的js文件名 let files = fs.readdirSync(paths); files.forEach(file =>{ if(/main_.+/.test(file) || /vendor_.+/.test(file)){ fileNames.push(file); } }) let csspaths = path.join(process.cwd(), 'dist/css/'); // 读取打包后生成的css文件名 let cssFiles = fs.readdirSync(csspaths); cssFiles.forEach(file =>{ if(/main_.+/.test(file)){ fileNames.push(file); } }) console.log(fileNames, 'fileNames'); let htmlFile = path.join(process.cwd(), 'dist/html/index.html'); let htmlStr = ''; let data = fs.readFileSync(htmlFile, 'UTF-8'); if(data.indexOf(fileNames[0]) < 0){ htmlStr = data.replace('main.js', fileNames[0]); } if(htmlStr.indexOf(fileNames[1]) < 0){ htmlStr = htmlStr.replace('vendor.js', fileNames[1]); } if(htmlStr.indexOf(fileNames[2]) < 0){ htmlStr = htmlStr.replace('main.css', fileNames[2]); } fs.writeFileSync(htmlFile, htmlStr); } module.exports = versionCheck;