活用package.json脚本,用node拷贝文件到指定目录

在项目中遇到需要将前端项目打包后的dist目录拷贝到指定目录,不想每次都手动拷贝,可以考虑在package.json中加个脚本,例如下面的build脚本,&&后面添加的部分 (&&表示执行完前面脚本开始执行后面脚本,可以添加多个&&)

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack --config ./webpack/webpack.pro.conf.js && node ./copyDistToSdk.js"
}

copyDistToSdk.js 内容如下:

const fs = require('fs');
const path = require('path');

// 拷贝js文件
function copyJSFiles(sourceDir, targetDir) {
  // 读取源文件夹中的文件列表
  const files = fs.readdirSync(sourceDir);

  // 遍历文件列表
  files.forEach(file => {
    const sourcePath = path.join(sourceDir, file);
    const targetPath = path.join(targetDir, file);

    // 获取文件信息
    const stats = fs.statSync(sourcePath);

    // 如果是目录,则递归调用 copyJSFiles
    if (stats.isDirectory()) {
      fs.mkdirSync(targetPath);
      copyJSFiles(sourcePath, targetPath);
    }
    // 如果是以 .js 后缀的文件,则进行拷贝操作。如果不需要判断文件后缀,可以直接写else
    else if (path.extname(file) === '.js') {
      fs.copyFileSync(sourcePath, targetPath);
      console.log(`Copied: ${sourcePath} to ${targetPath}`);
    }
  });
}

// 调用函数,设置源文件夹和目标文件夹路径
const sourceFolder = path.join(__dirname, '/dist');
const targetFolder_js = path.join(process.cwd(), '..', '..', 'public/static/js');
// process.cwd()表示到根目录下,目标目录 加两次".."(代表../../ 返回项目根目录)  
// 如果目标层级不变 可以直接写 path.join(process.cwd(), 'public/static/js');
copyJSFiles(sourceFolder, targetFolder_js);

这样每次build之后,脚本会自动拷贝dist文件,减少手动操作

偷懒也是提高效率的动力

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值