我想在我的下一个项目中使用node.js,但我的老板不喜欢我们的竞争对手可以阅读源代码.
有没有办法保护JavaScript代码?
我正在检查是否可以分发node.js应用程序封闭源.不是客户端Javascript文件,而是服务器端文件作为商业产品.我认为代码混淆/ uglification不会提供真正的隐私.也许将包装/编译源代码编译成二进制文件可能有所帮助.这可能吗?
我一直在研究v8源代码,尤其是'mksnapshot'工具如何在v8二进制文件中包含原生javascript文件(runtime.js,json.js ...)的编译图像,并注意到它还包括一个(有点)源的缩小版本.例如,在检查d8可执行文件的内容时,我看到以下代码段:
var $JSON=global.JSON;
function Revive(a,b,c){
var d=a[b];
if((%_IsObject(d))){
if((%_IsArray(d))){
var g=d.length;
Run Code Online (Sandbox Code Playgroud)
在'src/json.js'的开头我看到:
var $JSON = global.JSON;
function Revive(holder, name, reviver) {
var val = holder[name];
if (IS_OBJECT(val)) {
if (IS_ARRAY(val)) {
var length = val.length;
Run Code Online (Sandbox Code Playgroud)
很明显,两个片段都是等效的,但第二个片段在编译过程中转换为第一个片段.
我会理解是否包含原始代码用于检查'toString',但是当我在d8中输入'JSON.stringify'时,我看到的是'function stringify(){[native code]}',那么有什么意义呢?这个?