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数 | 用途 |
---|---|---|
axios | 102K | HTTP客户端 |
lodash | 57.7K | 基础函数库,如数组/日期操作 |
moment | 47.6K | 日期操作 |
dayjs | 44K | moment替代品 |
cheerio | 27K | HTML解析器 |
validator.js | 21.9K | 字符串验证器 |
crypto-js | 14.9K | 加密及哈希算法库 |
mathjs | 13.6K | 数学 |
Numeral-js | 9.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里,开发者可以自由地升级或者是删除它们。