lock.js - 使用 Nodejs 把项目打包成一个可执行文件

发布于 1周前 作者 ionicwang 来自 nodejs/Nestjs

lock.js - 使用 Nodejs 把项目打包成一个可执行文件

地址: https://github.com/DavidCai1993/lock.js

特性:

  • 将 Node.js 项目打包成一个可执行文件,直接执行。
  • 可执行文件的编译生成基于密钥,可用于加密项目源代码。
  • 支持项目中的 C++ 拓展。
  • 支持大多数不需 fdfs read 方法。
  • 可执行文件中运行的 Node.js 版本为其生成当下最新的 Node.js 版本(编译时链接其动态库)。

欢迎大家使用试玩,虽然感觉应该还有不少坑~也欢迎 star ~欢迎 PR ~


19 回复

npm install 后很多本来就可以直接执行,为什么需要打包?
如果是桌面应用,都是自带打包的,如 electron-packager

那么问题来了,这个轮子意义是?


如果是 electron 做出来的应用,能不能打包成一个独立的 exe 文件?

没装 node 呢

2 , 3 楼的回复都阔以回答~

node electron 都自带调试,所以加密的意义是?

比如说可以是保密源代码

js 最多就是混淆,要保密,换编译型的语言吧。

恩,若在一开选择的时候, JS 必须不是首选~

读了代码,这加密了和没加密有什么区别?我还不如创建一个自解压文件……

二进制可执行文件如何看到源码…

有计划支持 windows 吗

根据你这个文件格式直接做解析器就好了啊……无非解密变的麻烦了一点罢了……

简单看了一下,错了请指正。感觉就是一个加密打包而已,对代码的保护好像病没有什么意义。。。我还以为是类似这样的东西 https://github.com/nwjs/nw.js/wiki/protect-javascript-source-code-with-v8-snapshot

偷懒一点的方法,把你的程序跑起来,读内存。

恩前提是有 key

你部署执行的时候必须要有 key ,除非机器也是你控制的,否则的话要拿到 key 也容易。

恩用 key 折中因为考虑要到对应平台上编译,挺头疼的~

在Node.js中,将项目打包成一个可执行文件(executable file)通常可以通过一些工具来实现,比如pkgpkg允许你将Node.js项目打包成适用于Windows、macOS和Linux的可执行文件。下面是一个简单的步骤说明,以及如何使用lock.js(假设这是一个你的Node.js项目文件名)来打包项目的示例。

首先,你需要安装pkg。你可以通过npm来安装它:

npm install -g pkg

然后,确保你的package.json文件中的bin字段正确指向了你的入口文件(比如lock.js)。例如:

{
  "name": "your-project-name",
  "version": "1.0.0",
  "bin": "./lock.js",
  "scripts": {
    "start": "node lock.js"
  },
  ...
}

注意:如果你的入口文件是JavaScript模块,确保它可以在没有node命令的情况下直接运行(即它是一个完整的可执行脚本)。

接下来,你可以使用pkg来打包你的项目:

pkg .

这将生成适用于你当前操作系统的可执行文件。如果你需要为其他平台生成文件,可以使用--targets选项,比如:

pkg . --targets node14-linux-x64,node14-macos-x64,node14-win-x64

这将会为Node.js 14版本在Linux、macOS和Windows上生成可执行文件。

完成这些步骤后,你将能够在没有Node.js环境的情况下运行你的lock.js项目。

回到顶部