ITADN
fastly/js-compute-runtime
fastly/js-compute-runtime · 文件 下载 ZIP
文件最后提交记录最后更新时间
README.md
以下内容由 AI 翻译,如有问题请点此提交 issue 反馈

@fastly/js-compute

用于在 Fastly Compute 上构建 JavaScript 应用程序的 JavaScript SDK 和 CLI。

npm version npm downloads per month

入门

我们建议使用 Fastly CLI 来创建、构建和部署 JavaScript Fastly Compute 服务,如 Fastly Developer Hub 上的说明

JavaScript Fastly Compute 服务的详细文档 也可在 Fastly Developer Hub 上获取。

用法

JavaScript 示例

Fastly Developer Hub 提供了一个 JavaScript 示例应用程序集合

以下是一个小型示例应用程序:

/// <reference types="@fastly/js-compute" />

async function app(event) {
    const request = event.request;
    return new Response(`You made a request to ${request.url}`)
}

addEventListener("fetch", event => {
  event.respondWith(app(event));
});

CLI 标志和配置

CLI 通常通过项目 package.json 脚本中定义的 build 脚本调用。

{
  "scripts": {
    "build": "js-compute-runtime src/index.js bin/main.wasm"
  }
}

CLI 的调用方式如下:

js-compute-runtime [OPTIONS] <input-js-file> <output-wasm-file>

选项可以在命令行中指定,也可以添加到项目的持久化配置文件中。 CLI 将从当前目录开始,按以下顺序搜索配置:

  • package.json 中的 fastlycompute 属性
  • .fastlycomputerc.json
  • fastlycompute.config.js
点击此处查看完整列表

CLI 将从当前目录开始,按以下顺序搜索配置:

  • package.json 中的 fastlycompute 属性
  • .fastlycomputerc (JSON 或 YAML)
  • .fastlycomputerc.json, .fastlycomputerc.yaml, .fastlycomputerc.yml
  • .fastlycomputerc.js, .fastlycomputerc.mjs
  • fastlycompute.config.js, fastlycompute.config.mjs

如果某个选项同时在命令行和配置文件中定义,则命令行选项优先。

支持的选项

配置键CLI 标志类型描述
enableAOT--enable-aotboolean启用 AOT 编译以提升性能
aotCache--aot-cachestring (path)指定 AOT 缓存文件的路径
enableHttpCache--enable-http-cacheboolean启用 HTTP 缓存钩子 API
enableExperimentalHighResolutionTimeMethods--enable-experimental-high-resolution-time-methodsboolean启用实验性 fastly.now() 方法
enableExperimentalTopLevelAwait--enable-experimental-top-level-awaitboolean启用实验性顶层 await
enableStackTraces--enable-stack-tracesboolean启用堆栈跟踪
excludeSources--exclude-sourcesboolean不在堆栈跟踪中包含源文件
debugIntermediateFiles--debug-intermediate-filesstring (path)在目录中输出中间文件
debugBuild--debug-buildboolean使用 SDK 运行时的调试构建
engineWasm--engine-wasmstring (path)指定自定义 Wasm 引擎(高级)
wevalBin--weval-binstring (path)指定自定义 weval 二进制文件(高级)
env--envstring | object | array设置环境变量,可能继承自当前环境。多个变量可以用逗号分隔(例如,--env ENV_VAR,OVERRIDE=val)

NOTE: env 字段是累加的。命令行上定义的值会追加到配置文件中定义的值,而不是替换它们。

示例命令行选项

js-compute-runtime --enable-aot --enable-stack-traces --enable-top-level-await --env=LOG_LEVEL=debug ./src/index.js ./bin/main.wasm

示例 .fastlycomputerc.json

{
  "enableAOT": true,
  "enableStackTraces": true,
  "enableTopLevelAwait": true,
  "env": {
    "LOG_LEVEL": "debug"
  }
}

示例 package.json

{
  "name": "my-fastly-service",
  "type": "module",
  "dependencies": {
    "@fastly/cli": "^13.0.0"
  },
  "scripts": {
    "build": "js-compute-runtime ./src/index.js ./bin/main.wasm",
    "dev": "fastly compute serve",
    "deploy": "fastly compute publish"
  },
  "fastlycompute": {
    "enableAOT": true,
    "enableStackTraces": true,
    "enableTopLevelAwait": true,
    "env": {
      "LOG_LEVEL": "debug"
    }
  }
}

API 文档

JavaScript SDK 的 API 文档位于 https://js-compute-reference-docs.edgecompute.app

安全

如果您发现任何安全问题,请参阅 Fastly 安全报告页面 或发送邮件至:security@fastly.com

我们计划按照 GitHub 安全漏洞指南 披露任何发现的安全漏洞。请注意,此处描述的与 Fastly 维护的开源项目相关的安全问题沟通,与 Fastly 安全公告 是不同的。

变更日志

变更日志可在 此处 找到。

许可证

Apache-2.0 WITH LLVM-exception