本文介绍: 主要是用node代码 读取文件内容判断文件还是文件夹,文件夹就继续循环判断,将目录结构保留,一起打包到dist文件。写这个的原因 也是因为同事不知道发给运维哪些文件,有些文件只是我们开发要,并不部署的所以就过滤掉。build.js 文件代码如下。
const fs = require('fs');
const path = require('path');
// 指定要打包的HTML文件路径和输出目录路径
var pathName = "./";
const outputDir = 'dist';
// 匹配html文件
var ipReg = /.(htm|html|js|version)$/i;
// 创建输出目录(如果不存在)
if (!fs.existsSync(outputDir)) {
fs.mkdirSync(outputDir);
}
// 遍历源文件夹中的所有文件和子文件夹
function xunhuan(subTargetPath,subSourcePath) {
fs.mkdirSync(subTargetPath, { recursive: true });
// 递归复制子文件夹里的文件和子文件夹
fs.readdirSync(subSourcePath).forEach((fileOrDir) => {
const subSubSourcePath = path.join(subSourcePath, fileOrDir);
const subSubTargetPath = path.join(subTargetPath, fileOrDir);
if (fs.lstatSync(subSubSourcePath).isFile()) {
fs.copyFileSync(subSubSourcePath, subSubTargetPath);
} else if (fs.lstatSync(subSubSourcePath).isDirectory()) {
xunhuan(subSubTargetPath,subSubSourcePath)
}
});
}
// 遍历源文件夹中的所有文件和子文件夹
fs.readdirSync(pathName).forEach((fileOrDir) => {
// 源文件或文件夹的完整路径
const sourcePath = path.join(pathName, fileOrDir);
// 目标文件或文件夹的完整路径
const targetPath = path.join(outputDir, fileOrDir);
// 判断是文件还是文件夹
if (fs.lstatSync(sourcePath).isFile()) {
if (ipReg.test(fileOrDir) && fileOrDir.indexOf('proxy') < 0 && fileOrDir.indexOf('build') < 0 && fileOrDir.indexOf('server') < 0) {
// 如果是文件,则直接复制
fs.copyFileSync(sourcePath, targetPath);
}
} else if (fileOrDir != 'dist' && fileOrDir != '.git' && fileOrDir!="node_modules" && fs.lstatSync(sourcePath).isDirectory()) {
xunhuan(targetPath,sourcePath);
}
});
主要是用node代码 读取文件内容判断文件还是文件夹,文件夹就继续循环判断,将目录结构保留,一起打包到dist文件
写这个的原因 也是因为同事不知道发给运维哪些文件,有些文件只是我们开发要,并不部署的所以就过滤掉。
原文地址:https://blog.csdn.net/u012377866/article/details/134663776
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_5115.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。