lock.js - 把 Node.js 项目打包成一个可执行文件 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qqqppp9998
V2EX    Node.js

lock.js - 把 Node.js 项目打包成一个可执行文件

  •  1
     
  •   qqqppp9998 2016-08-30 07:57:37 +08:00 8566 次点击
    这是一个创建于 3337 天前的主题,其中的信息可能已经有所发展或是发生改变。

    地址: https://github.com/DavidCai1993/lock.js

    特性:

    • 将 Node.js 项目打包成一个可执行文件,直接执行。
    • 可执行文件的编译生成基于密钥,可用于加密项目源代码。
    • 支持项目中的 C++ 拓展。
    • 支持大多数不需 fdfs read 方法。
    • 可执行文件中运行的 Node.js 版本为其生成当下最新的 Node.js 版本(编译时链接其动态库)。

    欢迎大家使用试玩,虽然感觉应该还有不少坑~也欢迎 star ~欢迎 PR ~

    18 条回复    2016-08-30 13:50:52 +08:00
    int64ago
        1
    int64ago  
       2016-08-30 08:19:27 +08:00
    npm install 后很多本来就可以直接执行,为什么需要打包?
    如果是桌面应用,都是自带打包的,如 electron-packager

    那么问题来了,这个轮子意义是?
    zhangbohun
        2
    zhangbohun  
       2016-08-30 08:29:47 +08:00 via Android
    @int64ago 加密?
    yimity
        3
    yimity  
       2016-08-30 08:43:12 +08:00
    如果是 electron 做出来的应用,能不能打包成一个独立的 exe 文件?
    isCyan
        4
    isCyan  
       2016-08-30 10:00:53 +08:00 via Android
    @int64ago 没装 node 呢
    qqqppp9998
        5
    qqqppp9998  
    OP
       2016-08-30 10:01:41 +08:00
    @int64ago 2 , 3 楼的回复都阔以回答~
    iwege
        6
    iwege  
       2016-08-30 11:20:46 +08:00
    node electron 都自带调试,所以加密的意义是?
    qqqppp9998
        7
    qqqppp9998  
    OP
       2016-08-30 11:38:14 +08:00
    @iwege 比如说可以是保密源代码
    loading
        8
    loading  
       2016-08-30 12:58:50 +08:00 via Android
    @qqqppp9998 js 最多就是混淆,要保密,换编译型的语言吧。
    qqqppp9998
        9
    qqqppp9998  
    OP
       2016-08-30 13:08:17 +08:00
    @loading 恩,若在一开选择的时候, JS 必须不是首选~
    zsx
        10
    zsx  
       2016-08-30 13:11:22 +08:00
    读了代码,这加密了和没加密有什么区别?我还不如创建一个自解压文件……
    qqqppp9998
        11
    qqqppp9998  
    OP
       2016-08-30 13:21:43 +08:00
    @zsx 二进制可执行文件如何看到源码...
    jucelin
        12
    jucelin  
       2016-08-30 13:23:32 +08:00
    有计划支持 windows 吗
    zsx
        13
    zsx  
       2016-08-30 13:27:12 +08:00
    @qqqppp9998 根据你这个文件格式直接做解析器就好了啊……无非解密变的麻烦了一点罢了……
    tinyproxy
        14
    tinyproxy  
       2016-08-30 13:28:26 +08:00
    @qqqppp9998 简单看了一下,错了请指正。感觉就是一个加密打包而已,对代码的保护好像病没有什么意义。。。我还以为是类似这样的东西 https://github.com/nwjs/nw.js/wiki/protect-Javascript-source-code-with-v8-snapshot
    tinyproxy
        15
    tinyproxy  
       2016-08-30 13:29:57 +08:00
    @qqqppp9998 偷懒一点的方法,把你的程序跑起来,读内存。
    qqqppp9998
        16
    qqqppp9998  
    OP
       2016-08-30 13:30:59 +08:00
    @zsx 恩前提是有 key
    iwege
        17
    iwege  
       2016-08-30 13:44:22 +08:00
    @qqqppp9998 你部署执行的时候必须要有 key ,除非机器也是你控制的,否则的话要拿到 key 也容易。
    qqqppp9998
        18
    qqqppp9998  
    OP
       2016-08-30 13:50:52 +08:00
    @iwege 恩用 key 折中因为考虑要到对应平台上编译,挺头疼的~
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2576 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 02:23 PVG 10:23 LAX 19:23 JFK 22:23
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86