V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
november
V2EX  ›  问与答

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

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

    公司帮客户开发了个系统,用的 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   ·   实用小工具   ·   1126 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:36 · PVG 02:36 · LAX 10:36 · JFK 13:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.