跳到主要内容

NPM Module

简介

Luwak 内置的 JavaScript 引擎支持完整的 ES5 特性和一小部分 ES6 特性。推荐使用 Babeljs 将 ES6 代码转换为 ES5。

使用前可先 npm install 正常安装,并测试下自己需要的库函数是否正常,如果经测试没有问题的话,也可以不用转为 ES5。

注意:Luwak内置Golang开发的JavaScript引擎,不支持浏览器和Node.js容器特有的API。因此只支持一部分NPM包。调用了Node.js特有API的NPM包不能用,例如: log4js-node

三方库

JavaScript拥有极其丰富的高质量第三方库,例如:

Github Star数用途
axios102KHTTP客户端
lodash57.7K基础函数库,如数组/日期操作
moment47.6K日期操作
dayjs44Kmoment替代品
cheerio27KHTML解析器
validator.js21.9K字符串验证器
crypto-js14.9K加密及哈希算法库
mathjs13.6K数学
Numeral-js9.5K数字格式化

第三方库丰富是我们选择JavaScript作为Luwak内嵌脚本语言的原因之一。

在Luwak中调用NPM Module

和正常的node.js调用一致,例如:

var validator = require('validator.js');
var isEmail = validator.isEmail('foo@bar.com'); /* => true */

安装NPM Module

要在Luwak中使用NPM Module,只需要“下载源码-编译-拷贝”三步,下面以validator.js为例详细介绍安装方法:

下载源码

一般是在github.com或者npmjs.com上下载:

编译

先要修改编译输出目标为ES5,因为Luwak的JavaScript引擎只支持ES5.1规划,不完全支持ES6:

jsconfig.json

{
"compilerOptions": {
"module": "system",
"target": "ES5"
}
}

安装依赖并编译成 node.js 模块:

yarn

yarn build:node

拷贝

将编译产物 index.js 文件和 lib 目录复制到 Luwak 安装目录的 _node_modules/validator.js/ 目录

验证

在Luwak中新建一个com.example.test的RPC,在对应的JS Code中输入:

var validator = require('validator.js');

var isEmail = validator.isEmail('foo@bar.com'); /* => true */

var isNumeric = validator.isNumeric("1234567890"); /* => true */

var isNumeric = validator.isNumeric("N123456789"); /* => false */

Luwak预置的NPM Module

  • lodash
  • validator.js
  • crypto-js
  • mathjs

这些module都在luwak安装目录下的_node_modules里,开发者可以自由地升级或者是删除它们。