enclosejs打包工具的使用方法

enclosejs打包工具的使用方法

介绍

enclosejs 是一款开源的打包、加密工具;用于打包、加密nodejs的的工程;我们都知道,一个nodejs项目,从安装到部署整个过程都没有考虑到如何对代码进行加密保护,也没有考虑到如何快速安装和部署工程,每次都需要npm i许多项目的依赖包,而在实际的工程应用中,往往我们为了技术的保密,而不愿意直接将源码交给客户,所以这就促使了像enclosejs这样的工具的诞生;现在有了enclosejs,很好的解决了这些问题,当然也有其他的一些工具能够完成同样的工作;本文就简单讲解一下enclosejs是如何一步一步地打包我们的nodejs工程的;

enclosejs 的作用

  • 将nodejs的源码打包成一个文件
  • 经打包后的文件可以直接运行,不需要npm i
  • 打包后的文件不依赖与nodejs 和npm i
  • 对工程起到加密保护的作用

enclosejs的安装

1、安装前的准备

为了提高npm安装的速度,就要将默认的npm registry的地址改为国内的一个镜像地址,因为我们访问默认的镜像比较慢,而安装enclosejs需要下载好几个包;npm registry默认的地址是http://registry.npmjs.org/,这里我们利用如下命令可以修改默认registry:(国内的镜像有许多,比如http://registry.cnpmjs.org, 还有淘宝的镜像:https://registry.npm.taobao.org
npm config set registry http://....
然后查看是否修改成功:
npm info underscore

2、安装

enclosejs的安装非常简单,直接通过下面这条命令就可以完成安装:
npm install -g enclose
安装好之后,进入安装的node_modules目录下的enclose目录
cd /usr/local/lib/node_modules/enclose
然后执行postinstall.js文件;
./postinstall.js

enclosejs的用法

1、 简单用法

安装好enclosejs后,可以通过命令enclose可以查看命令的参数
这里写图片描述
举一个简单的例子说明用法:
现在我有一个test.js 的nodejs程序,用enclose来编译成机器码,很简单:
enclose -l info -x -o ./test ./test.js
这样就将test.js的程序用enclose编译成机器64位的机器码,放在了当前目录下的一个名为test的文件;
这里写图片描述
然后可以通过file test命令来查看test文件的一些信息;

2、config.js 文件的书写方法:
  • 引入config.js的原因
    首先解释一下为什么要引入config.js的文件,往往我们一个工程中包含了许许多多的外部文件而不简单的就像我们前面的例子中的一个单独的test.js的文件,有js的源码文件,有html的模板文件,还有一些图片等资源文件等等各种各样的文件,而如何将这些依赖文件最终package到一起形成一个类似于exe的文件呢?这就促使我们要手动的去解决这些文件,模块的依赖关系,这些关系的指定都是放在config.js这样一个配置文件中的,当我们在使用enclose命令的时候只需要跟上-c参数指定config.js的文件,即可完成多文件多模块的package;
  • 如何编写config.js文件
    module.exports = {
    scripts: "./views/*.js",
    assets: "./templates/*.*",
    dirs: [ "./views",
    "./templates" ]
    };
    下面解释一下各个属性的意思:
    1、scripts:属性表示你要在主程序中require的外部js文件的路径
    2、assets:表示工程中所以来的第三方库文件,html模板文件,资源文件等的路径;如果有多个可以写成数组的方式;
    3、当我们要用到fs.readdirSync的时候就要用到dirs这个字段;
    接下来举一个我用nodejs的express框架和socket.io模块编写的一个web程序为例详细说明一下整个package的过程;
  • (1)整个工程的一个概况:
    在整个工程中有这样一些文件,其中bin下面是主程序的入口文件,当我们执行npm start命令的时候就可以正常的运行整个工程;views下面是一些html的模板文件,public下面放到一些资源文件,css,images,js等等,node_modules下面是整个工程需要的第三方依赖库文件;
    这里写图片描述
  • (2)编写config.js的配置文件:
    这里只是为了方便,我们可以直接在bin下面编写config.js文件;
    这里写图片描述
  • (3)enclose打包该工程:
    接下来就是利用enclose来package整个工程了;
    enclose -l info -c config.js -x -o ./test ./www
    打包完了之后我们就可以在bin下面看到生成了一个test的可执行文件;
    这里写图片描述
  • (4)执行package后的可执行程序:
    ./test
    这样就可以执行整个工程了;
    这里的test文件是一个二进制的文件,充分的满足了打包,加密,方便部署的要求 ;

更多的参数可以通过enclose 命令来获取帮助;也可以参考官方的文档 —— [ enclosejs官方]

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值