把node脚本打包成exe文件 在无node环境的机器上运行

有时候做的一些活动页面,会涉及到数据存储,虽然有一套公共业务接口,具备对应的数据导出,但是活动这种东西,一向没有那么中规中矩,总会有那么几次无法用公共接口来满足,遇到一些需要定制的情况,在赶工期的时候就只能是先满足数据录入需要部分,保证顺利上线,至于数据的导出,那往往是不在考虑范围的。

那么要导出的话怎么办,通常来说就是服务端的同学从服务器上把log文件拖下来,交给运营同学自己分析。如果是独立的log还好,一份log就是一份想要的目标数据,但如果不是,比如说还混杂了一些其他log,或者是想把多天的log合并到一起,那可能就会难倒运营了。

这个时候前端同学可以搭把手帮个忙,毕竟node在手,天下我有。

脚本怎么写就不说啦,主要是说一下最后怎么分享出去,毕竟我们写的时候都是基于node环境,npm各种包,再npm run xxxxx运行,不可能也让每个运营同学都安装一遍node吧!最不济的,还要把node主程序放到项目文件夹里,像下面这样,把start.js拖到node.exe上面运行,但也是很难受的一堆文件,如果被手痒改了里面的文件内容,报错了你还要去修 - -。

不过node这么万能,肯定有他自己的解决办法,那就是直接打包成一个可运行的程序,比如Windows的exe文件,目前亲测好用的就是一个pkg包,操作简单,效果靠谱,还支持MacOS和Linux平台的文件打包。

官方文档 https://www.npmjs.com/package/pkg

使用方式也很简单:

// 全局安装pkg
npm install -g pkg

// 进入你的项目目录
cd project

// 执行打包exe文件,其中start.js就是你的入口文件
pkg -t win start.js

// 如果你需要支持win/linux/mac多个平台的话,就执行这一句
pkg start.js

上面是最基本的打包操作,打包后,会在当前项目下生成对应的exe文件,可以把这个程序和需要的载入目录(比如我示例的log文件夹)进行分享,告知运营有log就丢进log文件夹,然后运行即可。

对比原来一堆文件的文件夹,现在就只需要变成简洁的工具目录,可太友好了:

直接双击start.exe,即可运行脚本,读取log文件夹的log文件,生成result.xlsx结果文件(根据实际需求调整目录结构)。

为您推荐

Leave a Reply

Your email address will not be published. Required fields are marked *