npm run build打包jquery项目

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文件
写这个的原因 也是因为同事不知道发给运维哪些文件,有些文件只是我们开发要,并不部署的所以就过滤掉。

相关推荐

  1. npm run build打包jquery项目

    2023-12-05 22:52:01       35 阅读
  2. webpack 打包前端项目

    2023-12-05 22:52:01       30 阅读
  3. webpack 打包前端项目

    2023-12-05 22:52:01       33 阅读
  4. 打包Python项目

    2023-12-05 22:52:01       34 阅读
  5. React项目打包流程

    2023-12-05 22:52:01       46 阅读
  6. Webpack打包vue项目

    2023-12-05 22:52:01       37 阅读
  7. tsdx 打包ts项目

    2023-12-05 22:52:01       16 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-05 22:52:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-05 22:52:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-05 22:52:01       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-05 22:52:01       20 阅读

热门阅读

  1. macOS/Ubuntu - ftp 工具

    2023-12-05 22:52:01       131 阅读
  2. Python与ArcGIS系列(十三)UpdateCursor方法

    2023-12-05 22:52:01       38 阅读
  3. Python与ArcGIS系列(十二)InsertCursor方法

    2023-12-05 22:52:01       34 阅读
  4. golang 集成logrus日志框架

    2023-12-05 22:52:01       38 阅读
  5. tcexam 本地容器化搭建

    2023-12-05 22:52:01       43 阅读
  6. ClickHouse入门手册1.0

    2023-12-05 22:52:01       32 阅读
  7. 西南科技大学(数据结构A)期末自测练习四

    2023-12-05 22:52:01       33 阅读
  8. 樱桃键盘怎么解除fn锁定

    2023-12-05 22:52:01       57 阅读
  9. Linux配置SFTP用户的详细过程

    2023-12-05 22:52:01       29 阅读
  10. 微前端框架 qiankun

    2023-12-05 22:52:01       42 阅读