如何使用?

Amove 编译器是基于编译原子组合而成,编写 Amove 应用即编译编译原子,并将编译原子关联起来,最后形成一个编译原子树,最后 Amove 会按照这棵树去执行每一个编译原子,从而实现代码编译。

示例

  1. const Compile = require('@amove/core');
  2. const path = require('path');
  3. const input = path.join(__dirname, './src');
  4. const output = path.join(__dirname, './dist');
  5. Compile({
  6. input,
  7. output,
  8. plugins: [
  9. function Js (node, store) {
  10. // 添加一个 Js 类型的编译原子
  11. }
  12. ]
  13. });

单文件插件

  • 新建一个 a-plugin.js
  • 编写如下代码
  1. const { useReducer } = require('@amov/next');
  2. const fs = require('fs-extra');
  3. useReducer({
  4. Js () {
  5. // 将 js 内容挂载到 this.$node.content 上
  6. this.$node.content = fs.readFileSync(this.$node.path, 'utf-8');
  7. }
  8. });
  • 在入口文件引入该文件即可 require('./a-plugin.js');

  • 完整代码如下:

  1. const Compile = require('@amove/core');
  2. const path = require('path');
  3. const input = path.join(__dirname, './src');
  4. const output = path.join(__dirname, './dist');
  5. require('./a-plugin.js');
  6. Compile({
  7. input,
  8. output,
  9. plugins: [
  10. function Js (node, store) {
  11. // 添加一个 Js 类型的编译原子
  12. console.log(this.$node.content); // 这里输出的值即为上述插件挂载的内容
  13. }
  14. ]
  15. });

示例 - antmove 编译原子树

在开始编写代码前可以通过思维导图这样的工具,拆分功能模块,得到的其实就是我们所需要的原子树,然后只需要按照各节点功能实现对应的编译原子即可。

如下是 Antmove 微信小程序到支付宝小程序转换的原子树结构图。

antmove

Antmove如何使用? - 图3 是一个小程序转换工具,借助于 Antmove 可以快速实现小程序迁徙。