配置

多个环境下需要切换不同的配置,如数据库,api源等等

workspace配置

新建一个workspace,aotoo会帮你创建一个目录,包含整套编译环境, 找到并编辑aotoo.config.js

$ aotoo init xxx
$ cd xxx
$ vim ./aotoo.config.js

aotoo.config中包含项目的完整信息,部分信息会被传导到node端,用于预编译或者运行时。配置文件内容如下:

const path = require('path')
const pakg = require('./package.json')
const ROOT = __dirname
const version = pakg.version
module.exports = {

  // 版本信息,由package.json的version来指定
  // 默认情况下,所有项目产出的版本号都会依据这个version值
  // 版本信息会被用于生成dist下的版本目录
  version: version,

  // node的环境变量NODE_ENV
  mode: process.env.NODE_ENV,

  // workspace的根目录地址
  // 会用在aotoo安装插件时,及node端(目录层级很深)掉用
  ROOT: ROOT,

  // 所有项目的原始根目录
  src : path.join(__dirname, 'src'),

  // 配置默认项目信息
  // 小程序项目必须使用这个配置
  // 当我们不使用start, name等命令选项时,aotoo-hub会查找该属性下startup为true的项目,并尝试启动
  // 当我们配置好默认项目后,命令行可以简化projectName
  apps: [
    {
      // 项目名称,与src项目项目目录一致
      // 任何项目都必须有自己唯一的名称
      name: 'aotooSample',

      // 是否启动该项目
      startup: true,  

      // 指定项目源源目录 
      src: path.join(ROOT, 'src/aotooSample'), 

      // 默认静态资源输出地址为 src/dist
      // 这里可以手动指定希望输出的目录
      // dist

      // 指定项目端口地址
      // 指定项目端口,可为null,系统自动分配端口地址
      port: 8400  
    }
  ]
}

项目环境配置

新建一个项目,aotoo会帮你创建一个scr/projectName/configs目录,并包含一个default.js默认配置文件 当我们启动node端时,该配置文件的内容会被注入到node.globel.CONFIG全局变量中。

$ aotoo create abc
# 选择yes

default.js文件内容

// scr/projectName/configs/default.js

const path = require('path');
/*
 * asset: {JSON} 包含该该项目的基础环境变量
*/
module.exports = function (asset) {
  const { 
    // 项目名称
    name, 

    // 是否启动
    startup, 

    // 是否为开发模式
    isDev, 

    // 项目源根目录
    SRC, 

    // 输出静态文件根目录
    DIST, 

    // host名称
    HOST, 

    // node端启动端口
    PORT, 

    // 其他配置参数
    // options挂载了很重要的静态文件映射内容及静态文件的publicpath
    options 
  } = asset

  return {
    ...
    ...
    ...
  }
}

假如在test服务器环境中,我们可以新建一个env_test.js,内容参考default,通过命令的方式来切换环境变量

$ aotoo start aaa --config env_test

这样在node环境中,node.globel.CONFIG这个全局变量则混合了test、default、项目配置三种配置内容,供在node中调用