前端源码被打包编译怎么解决
‘壹’ 前端打包,怎么只替换修改的文件,而不是整个项目替换
使用打包工具后无法之修改制定的文件
1、打包工具是在源码发生了变化后重新打包编译源代码,打包工具并不能区分具体生成后打哪些文件发生了变化
2、所以如果打包整个项目比较慢的话可以考虑优化打包速度,一般是不支持只替换修改的文件的
‘贰’ 将源代码jar包修改,再打包,怎么做
1、你首先要得到jar包里需要修改的class的源码,复制出来新建类,注意类名包名需要和之前一致。
2、修改代码后编译获得class文件
3、用好压或其他压缩文件打开之前的jar包进入原class所在文件目录将新class复制进去即可
‘叁’ vscode源码打包
1.打包方法: yarn run gulp vscode-win32-x64-archive,打包后生成的包在 .build\win32-x64\archive\VSCode-win32-x64.zip , 这种方法目前看似乎是从某个文件夹直接压缩。在这个之前,需要先做 yarn的动作。
2.另一种方法: yarn run gulp vscode-win32-x64-min, 打包后,会在 vscode 当前目录的上一级生成目录VSCode-win32-x64,带 min 和不带 min 的编译方法相比,min对于其中的js文件做过体积简化。我们编译应该用带min的方式来编译。
‘肆’ 已打包的C#项目如何还原成代码
如果你说的项目是sln的话,那么他就是源代码,可以更改
如果是别人编译后的exe或dll,去下一个reflector吧,把源代码复制出来,再自己改吧。
‘伍’ webpack打包过的代码怎么反编译回来
javaScript Document
function show(str)
{
var str1="td"+str;
var str="show"+str;
for (var i=1; i<18; i++)
{
var obj = document.getElementById('show' + i.toString());
if (obj) obj.style.display = 'none';
}
document.getElementById(str).style.display="block";
}
‘陆’ gradle解压源码,重新打包
这几天工作上遇到一个问题,三方的jar包在liunx下解压不了,用gradle又能正常编译,我们的apk是在liunx下用mk进行编译的,编译的过程中需要对jar包进行解压,这样就导致编译失败。
错误信息如下:以后再遇到这个错误,可能就jar包的问题。
FAILED: /bin/bash -c "(mkdir -p out/target/common/obj/JAVA_LIBRARIES/xxx-sdk_intermediates/classes.jack.tmpjill.res ) && (unzip -qo /home/x/xx/xxx/APK92_GNBJ_EDO/code/libs/xxx-sdk-java20171027120314.jar -d out/target/common/obj/JAVA_LIBRARIES/xxx-sdk_intermediates/classes.jack.tmpjill.res ) && (find out/target/common/obj/JAVA_LIBRARIES/xxx-sdk_intermediates/classes.jack.tmpjill.res -iname \"*.class\" -delete ) && (JACK_VERSION=3.36.CANDIDATE out/host/linux-x86/bin/jack @build/core/jack-default.args --verbose error -D jack.import.resource.policy=keep-first -D jack.import.type.policy=keep-first -D jack.android.min-api-level=1 --import /home/x/xx/xxx/APK92_GNBJ_EDO/code/libs/xxx-sdk-java20171027120314.jar --import-resource out/target/common/obj/JAVA_LIBRARIES/xxx-sdk_intermediates/classes.jack.tmpjill.res --output-jack out/target/common/obj/JAVA_LIBRARIES/xxx-sdk_intermediates/classes.jack ) && (rm -rf out/target/common/obj/JAVA_LIBRARIES/xxx-sdk_intermediates/classes.jack.tmpjill.res )" warning: stripped absolute path spec from / mapname: conversion of failed ninja: build stopped: subcommand failed. build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed
解决方法:对jar包源码重新打包
解压jar包源码,注意,是带源码的jar包,如果是编译过的jar,是不能重新打包的。
步骤:
1.新建build.gradle文件,因为gradle会默认找到当前目录下的build.gradle下的文件去执行;
2.在终端执行gradle unzip,执行这个task
以下命令将这个目录 app/libs/xxx-sdk-java20171027120314.jar 下的jar包解压到了 unpacked/dist 目录。
解压之后的源码就是文件夹,重新打包的时候需要注意,包名和源码的路径名一致。现在利用Android studio进行打包。
步骤:
1.新建lib mole,选择Android Libeary/Java Library;
2.注意修改包名与jar包路径相同,eg:jar包解压之后的路径 dist/com/example/api ,那么为了确保新生成的jar包里的Java文件import路径相同,mole的包名也要命名为 com.example.api ;
3.将解压之后的源码java文件复制到lib model中;
4.在 app mole 下添加 lib mole 依赖。这是一种取巧的方法,当你添加了lib mole依赖之后,项目会重新rebuild,这个过程会将mole依赖编译成jar包,存放在lib mole的 build/libs 目录下,由于Android Studio版本不同,这个目录可能有有所不同,但是都在build目录下,找新的jar包就可以了。
这一部可能会报jar包找不到,或者lib mole中的import失败,可能是因为lib mole依赖的jar包没导入,导入之后在lib mole的build.gradle里配置一下就可以了。
这个时候,其实直接用这个jar包也可以了,如果向修改jar包名字,可以执行下面的gradle命令:
想了解更多可以参考 这里
然后在项目里测试一下jar包就可以了。
重新打包之后就可以在liunx下解压了,正常编译通过。
最后记录一下mk编译的一个错误 # [ERROR: Dex writing phase: classes.dex has too many IDs. Try using multi-dex](https://stackoverflow.com/questions/45472852/error-dex-writing-phase-classes-dex-has-too-many-ids-try-using-multi-dex) 在stackoverflow上找到了解决方法。
在mk文件中添加
参考:
https://stackoverflow.com/questions/39457116/gradle-build-hanging-when-jackoptions-is-enabled-for-java-1-8
https://stackoverflow.com/questions/45472852/error-dex-writing-phase-classes-dex-has-too-many-ids-try-using-multi-dex