如何使用?
Amove 编译器是基于编译原子组合而成,编写 Amove 应用即编译编译原子,并将编译原子关联起来,最后形成一个编译原子树,最后 Amove 会按照这棵树去执行每一个编译原子,从而实现代码编译。
示例
const Compile = require('@amove/core');
const path = require('path');
const input = path.join(__dirname, './src');
const output = path.join(__dirname, './dist');
Compile({
input,
output,
plugins: [
function Js (node, store) {
// 添加一个 Js 类型的编译原子
}
]
});
单文件插件
- 新建一个
a-plugin.js
- 编写如下代码
const { useReducer } = require('@amov/next');
const fs = require('fs-extra');
useReducer({
Js () {
// 将 js 内容挂载到 this.$node.content 上
this.$node.content = fs.readFileSync(this.$node.path, 'utf-8');
}
});
在入口文件引入该文件即可
require('./a-plugin.js');
完整代码如下:
const Compile = require('@amove/core');
const path = require('path');
const input = path.join(__dirname, './src');
const output = path.join(__dirname, './dist');
require('./a-plugin.js');
Compile({
input,
output,
plugins: [
function Js (node, store) {
// 添加一个 Js 类型的编译原子
console.log(this.$node.content); // 这里输出的值即为上述插件挂载的内容
}
]
});
@amove/core
插件
示例 - antmove 编译原子树
在开始编写代码前可以通过思维导图这样的工具,拆分功能模块,得到的其实就是我们所需要的原子树,然后只需要按照各节点功能实现对应的编译原子即可。
如下是 Antmove 微信小程序到支付宝小程序转换的原子树结构图。
Antmove 是一个小程序转换工具,借助于 Antmove 可以快速实现小程序迁徙。