将在Node js中创建桌面应用程序会使我的代码处于公开的危险之中吗?

时间:2017-10-30 13:45:37

标签: javascript node.js windows desktop-application

我打算创建一个桌面版的Web应用程序。但我担心最终用户也可以查看服务器代码。因为在桌面上,所有内容都是JavaScript,与.exe文件不同。我正在使用APP.js

编辑:无论如何我们可以隐藏我们的代码吗?

4 个答案:

答案 0 :(得分:3)

将可执行文件提供给人们意味着他们将能够获得原始逻辑并准确理解代码的工作方式,.exe文件也不安全,因为它们可以进行逆向工程。

我建议调查二进制和代码混淆。

答案 1 :(得分:1)

您可以使用像enter image description here这样的节点打包程序。它将打包并准备好在不同的平台上发布,而不需要任何js。

答案 2 :(得分:1)

使用NW.js,您可以将JS文件编译为字节码/机器代码,而无需分发您的JS文件。见http://docs.nwjs.io/en/latest/For%20Users/Advanced/Protect%20JavaScript%20Source%20Code/

答案 3 :(得分:0)

我使用了zeit / pkg来打包nodejs应用程序。它隐藏了所有源代码,并为不同的平台制作了一个可执行文件。

请在Nodejs App中添加以下代码以使用pkg:

<强>的package.json

"main": "app.js",
"scripts": {
"start": "npm start"
 },
"bin" : "$DIR\node_modules\npm\cli.js"

然后运行命令 pkg。

注意

1)你也可以通过命令直接打包app.js(如果你没有任何其他资产可以在pkg中添加):

pkg app.js

2)它将在您当前的工作目录中创建可执行文件。

3)你也可以在&#34; bin&#34;中给出入口点。 :

示例:

<强>的package.json

"main": "app.js",
"scripts": {
"start": "npm start"
 },
"bin" : "./bin/my-bin.js"

<强>斌/我的-bin.js

#!/usr/bin/env node

var join = require('path').join
var childProcess = require('child_process');
var args = process.argv.slice(2);

 args.unshift(__dirname + '/../'); 

childProcess.exec('npm start', (err, stdout) => {
if (err) console.log(err);
console.log(stdout);
})

然后,在当前工作目录中,

运行

pkg .