react 项目,请问有没有方法可以只混淆一部分源码,然后另外的小部分源码不混淆的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
november
V2EX    问与答

react 项目,请问有没有方法可以只混淆一部分源码,然后另外的小部分源码不混淆的?

  •  
  •   november 2021-09-02 11:30:36 +08:00 1708 次点击
    这是一个创建于 1587 天前的主题,其中的信息可能已经有所发展或是发生改变。

    公司帮客户开发了个系统,用的 react+typescript,现在移交项目给客户的时候,不希望客户拿到完整的源代码,但又需要给一部分的源代码。所以不能将整个项目打包后移交。

    那么请问万能 v 友啊,有没有什么方法 /方案,可以将部分的源代码进行混淆,同时又让客户在修改未混淆的代码后,依然可以正常打包的?

    各位有什么想法都可以说下,或者提供一些关键词也可以,我可以自己搜索相关内容。

    最终目的就是不希望客户拿到完整的源码,所以其他方案也是可以的。

    7 条回复    2021-09-02 19:39:23 +08:00
    noe132
        1
    noe132  
       2021-09-02 11:43:55 +08:00 via Android   3
    把需要改的代码提出来另外打包作为依赖加载进去不就行了
    november
        2
    november  
    OP
       2021-09-02 11:49:52 +08:00
    @noe132 一开始没有这个需求,所以代码里面,耦合性还蛮强的,而且还涉及一些界面的内容。组长把它作为最后方案,让我再找找其他方法。(最后不行还真得将代码提出来,在我看来这等于重构了。)
    triplelift
        3
    triplelift  
       2021-09-02 12:05:20 +08:00   1
    挺简单的。在 webpack 配置里把 uglify 配置加上正则匹配就行了,如果是 cra 生成的项目,应该要用其它的工具手动注入 webpack 配置
    november
        4
    november  
    OP
       2021-09-02 12:42:46 +08:00
    @triplelift 意思是说打包的时候,让部分代码不混淆吗?不过如果是移交打包后的代码(即使不混淆)应该不算是源码吧?
    Rheinmetal
        5
    Rheinmetal  
       2021-09-02 14:11:13 +08:00   1
    生产全混淆 直接给一部分源码不行么...
    triplelift
        6
    triplelift  
       2021-09-02 19:35:47 +08:00
    @november 那你就把需要混淆的代码单独打包成一个 lib 然后引用,不然你怎么能交付源码呢,打包后的代码即使不混淆也很难修改了。
    triplelift
        7
    triplelift  
       2021-09-02 19:39:23 +08:00
    耦合强没关系,你只需要通过正则匹配多个 target,分别打包一个 lib 和 app 就行了。然后交付代码的时候要对配置稍微做修改,把 lib 相关的源代码删掉,然后把配置中对相应路径的引用指向打包后的 lib,应该就可以了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3119 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 12:48 PVG 20:48 LAX 04:48 JFK 07:48
    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