ares-cdn

ares cdn tools

Usage no npm install needed!

<script type="module">
  import aresCdn from 'https://cdn.skypack.dev/ares-cdn';
</script>

README

携程 ARES-CDN

ares-cdn 是用来更便利地发布静态资源到 ares cdn 的工具。

用法

第一步:安装 ares-cdn 到 package.json

npm install --save-dev ares-cdn

第二步:在 git 仓库的根目录下新建 .ares.json 配置文件

group 为群组名称,举例:度假的群组名称为 vacation。可以用 post 请求 http://app.ares.fx.ctripcorp.com/service/groups 接口,发送参数 { "name": "" } 可以获取所有群组。

name 为你的 ares package name,无需申请,只要添加一个不冲突的新名字即可。

version 为版本号。注意:如果 .ares.json 版本号不存在,ares-cdn 将会以 .ares.json 同级目录下的 package.jsonversion 字段作为版本号。推荐用 package.json 统一管理版本号。

files 为数组,第一项为静态资源所在目录的相对地址。

manifestignore 通常不用处理,使用下列默认值即可。

{
    "group": "vacation",
  "name": "test-ares-cdn-02",
  "version": "1.0.1",
    "manifest": "1.0",
    "files": ["./dist"],
    "ignore": ""
}

第三步:添加 scripts 任务

在你的 package.jsonscripts 添加脚本任务 ares-cdn

ares-cdn build 命令,根据 .ares.json 的版本信息,构建 .ares 文件夹到 .ares.jsonfiles 字段指定的静态资源文件夹。该命令里包含了用户登陆的请求,如果用户已经登陆,则跳过登陆环节。如果用户未登陆,则自动弹出网页,需要用户在浏览器里登陆携程账号。

ares-cdn login 为用户登陆命令,通常不需要使用。

ares-cdn logout 为用户退出登陆命令,通常不需要使用。

{
  "scripts": {
    "ares-cdn": "ares-cdn build",
    "ares-cdn:login": "ares-cdn login",
    "ares-cdn:logout": "ares-cdn logout"
  },
}

在静态资源目录构建完毕之后,再调用 npm run ares-cdn 命令,把 ares 的版本信息构建出来,然后提交 git 仓库,去 ares portal 页面里选择 git 仓库发布静态资源即可。

第四步:获取虚拟目录和发布路径

在你的 config.js 里,引入 ares-cdn, 获取 CDN 的虚拟目录或发布路径。

getVirtualDirectory({ targetDirectory }) 是获取虚拟目录,不带域名。

getPublicPathByEnv({ targetDirectory, env, type }) 是发布路径,等于虚拟目录+域名。

targetDirectory 参数为 .ares.json 文件所在的目录地址。

env 参数为 fat|uat|prod 三个环境之一,必须小写。

type 参数为 online|offline|english,默认为 online 站点,决定拼接的域名。

const ares = require('ares-cdn')
// 获取虚拟目录
const virtualDirectory = ares.getVirtualDirectory({
    targetDirectory: __dirname
})
// 根据环境,获取发布路径
const publicPath = ares.getPublicPathByEnv({
    targetDirectory: __dirname,
  env: 'fat',
  type: 'offline'
})

console.log({ virtualDirectory, publicPath })

添加 ares owner

每个 ares package 默认的 owner 是创建者,只有 owner 有权限提交和发布 ares package,需要在 ares portal 对应的 ares package 页面里添加团队成员为 owner,团队成员才可以发布静态资源。