typescript 实现保存文件自动编译

本文介绍如何在项目目录下创建并运行 compile.js 脚本,实现对 TypeScript 文件的实时编译与运行,包括引入相关模块、监听目录变化、触发编译任务等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在当前项目目录下创建一个文件compile.js

然后node compile.js 

在然后就没有然后了。


var fs = require('fs')  
    , path = require('path')  
    , cp = require('child_process')  
    , beforePath= ''  
    ;  
  
function listen(dir)  
{  
    fs.readdirSync(dir).forEach(function(filename)  
    {  
        var stat= fs.statSync(path.join(dir, filename));  
  
        if( stat.isDirectory() )  
            listen(path.join(dir, filename));  
    });  
  
    fs.watch(dir, function (event, filename)  
    {  
        if( filename )  
        {  
            if( event==='rename' && filename.lastIndexOf('.ts') >= 0 )  
            {  
                var stat= fs.statSync(path.join(dir, filename));  
  
                if( stat.isDirectory() )  
                    return;  
                
                if( beforePath !== path.join(dir, filename) && filename.lastIndexOf('.ts') > -1 )  
                {  
                    beforePath= path.join(dir, filename);  
  
                    cp.exec('tsc --module amd '+ path.join(dir, filename), function(err)
                    {
                        if( err )
                            console.log(err)  
                        else
                            console.log(filename, 'ok')
                        beforePath= '';  
                    });  
                }  
            }  
            else  
            {  
                setTimeout(function()  
                {
                    if(filename.lastIndexOf('.ts') <= 0)
                        return;  

                    var stat= fs.statSync(path.join(dir, filename));  
  
                    if( stat.isDirectory() )  
                        listen(path.join(dir, filename));  
                }, 100);  
            }  
        }  
    });  
}  
  
listen(__dirname);  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值