# @cedar-policy/cedar-wasm 中文文档

规范地址：https://npmcn.com/package/%40cedar-policy/cedar-wasm/

版本：4\.14\.0
npm 元数据更新时间：2026-11-03T20:24:05.217Z
中文译文更新时间：2026-11-09T06:56:26.590Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40cedar-policy/cedar-wasm
原文对照：https://npmcn.com/package/%40cedar-policy/cedar-wasm/?lang=original
项目主页：https://github.com/cedar-policy/cedar#readme
源码仓库：https://github.com/cedar-policy/cedar

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：13.5 MB，21 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- 首次发布：2024-05-21T19:19:18.944Z
- 最新版本发布：2026-10-19T15:06:42.400Z
- 近 30 天下载量：1710805（2026-10-10 至 2026-11-08，npm 官方下载统计）
- 已发布版本数：33（近 12 个月 16 个）

## 中文简介

Cedar lib 的瓦斯装订和打字机类型

## 安装

```sh
npm install @cedar-policy/cedar-wasm
```

也可以使用：`pnpm add @cedar-policy/cedar-wasm`、`yarn add @cedar-policy/cedar-wasm`、`bun add @cedar-policy/cedar-wasm`

## README

# 雪松树

执行各种雪松功能,使开发者能够使用Cedar和ham编写打字和javascript应用程序.

## 安装

安装很简单,只是运行 `npm i @cedar-policy/cedar-wasm --save` 或者安装任何你最喜欢的软件包管理器.

装入要复杂得多 这取决于你的环境。 我们提供三个子包:

-   es 模块( 默认) 。 它装入的方式是,如果使用动态导入,它将被捆绑成一个文件,或者如果使用常规导入,它将被嵌入到主捆.
-   commonjs(用于节点). 用节点装入的 `fs` 模块,同步。 并非是用来捆绑或传送到浏览器的.
-   网:更自定义. 这个是当你需要装入 以某种完全定制的方式。 详见"换装策略"部分.

这些子包被命名为 `@cedar-policy/cedar-wasm`, (中文(简体) ), `@cedar-policy/cedar-wasm/nodejs`,以及 `@cedar-policy/cedar-wasm/web`分别是:.

## 在没有捆绑器的情况下装入裸节点J

节点使用普通J,所以您必须随需要导入,或者随动态导入 `import()`。 。 。 .

导入 CJS 导出 :

```
const cedar = require('@cedar-policy/cedar-wasm/nodejs');
console.log(cedar.getCedarVersion());
```

使用 Esm async 导入 Esm 版本 :

```
import('@cedar-policy/cedar-wasm/nodejs')
  .then(cedar => console.log(cedar.getCedarVersion()));
```

## 装入网络包装5:

最小软件包. json 用于包括 Dev 服务器在内的网络软件包 :

```
{
  "name": "webpack-ts-tester",
  "version": "1.0.0",
  "description": "", 
  "private": true,
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack",
    "dev": "webpack serve"
  },  
  "keywords": [], 
  "author": "", 
  "license": "ISC",
  "dependencies": {
    "@cedar-policy/cedar-wasm": "3.2.0"
  },  
  "devDependencies": {
    "ts-loader": "^9.5.1",
    "typescript": "^5.4.5",
    "webpack": "^5.91.0",
    "webpack-cli": "^5.1.4",
    "webpack-dev-server": "^5.0.4",
    "html-webpack-plugin": "^5.6.0"
  }
}
```

最小 tsconfig :

```
{
  "compilerOptions": {
    "outDir": "./dist/",
    "noImplicitAny": true,
    "module": "es2020",
    "target": "es5",
    "jsx": "react",
    "allowJs": true,
    "moduleResolution": "node"
  }
}
```

配置网页包. config.js :

```
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = { 
  mode: 'development', // change this to suit you
  entry: './src/index.ts',
  module: {
    rules: [
      {   
        test: /\.tsx?$/,
        use: 'ts-loader',
        exclude: /node_modules/,
      },  
    ],  
  },  
  resolve: {
    extensions: ['.tsx', '.ts', '.js'],
  },  
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist'),
  },  
  experiments: {
    asyncWebAssembly: true, // enables wasm support in webpack
  },
  plugins: [new HtmlWebpackPlugin()],
  devServer: {
    static: {
      directory: path.join(__dirname, 'dist'),
    },  
    compress: true,
    port: 8000,
  }
};
```

最后,从你的代码加载 `index.ts` 文档。 我们建议动态进口:

```
import('@cedar-policy/cedar-wasm').then(mod => {
  // cache it globally here or invoke functions like mod.getCedarVersion();
});
```

## 装入Vite 5:

从 vite 的打字模板开始, 安装这两个依赖以启用 sem :

```
npm i --save-dev vite-plugin-top-level-await vite-plugin-wasm
```

然后在您的 Vite 配置中添加这两个插件 `vite.config.js`数字 :

```
import wasm from 'vite-plugin-wasm';
import topLevelAwait from 'vite-plugin-top-level-await';
import { defineConfig } from 'vite';

export default defineConfig({
  plugins: [
    wasm(),
    topLevelAwait()
  ]
});

```

最后,装入代码。 我们建议动态进口:

```
import('@cedar-policy/cedar-wasm').then(mod => {
  // cache it globally here or invoke functions like mod.getCedarVersion();
});
```

## 其它加载策略

如果你因为某种原因不能使用 es 模块,我们提供替代子包 `web` 财务报告和审定财务报表 `nodejs` (定义: `exports` (原始内容存档于2018-09-21). at the root package.json.

这个 `nodejs` 子包装用途 `fs` 和普通JS模块。 要使用它,可以这样导入:

```
const cedar = require('@cedar-policy/cedar-wasm/nodejs')
```

这个 `web` 子软件包暴露 `initSync` 函数,用于在各种情况下加载 Cedar,因为无论出于何种原因,您都想要加载原二进制合成。 使用 `web` 可能还需要一些子包装 `jest` 设置。 这是你如何使用 `web` 子包装 :

```
const wasmBuffer = ... // `fetch` it or use `fs` to read it from `node_modules` in jest setupTests
import * as cedarJsBindings from '@cedar-policy/cedar-wasm/web';
cedarJsBindings.initSync(wasmBuffer);
```

## 常见问题

### @cedar-policy/cedar-wasm 是什么？

Cedar lib 的瓦斯装订和打字机类型

### 如何安装 @cedar-policy/cedar-wasm？

在项目目录运行 npm install @cedar-policy/cedar-wasm，或使用 pnpm add / yarn add / bun add。

### @cedar-policy/cedar-wasm 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @cedar-policy/cedar-wasm 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @cedar-policy/cedar-wasm 可以商用吗？

@cedar-policy/cedar-wasm 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @cedar-policy/cedar-wasm 的下载量有多少？

根据 npm 官方下载统计，@cedar-policy/cedar-wasm 在 2026/10/10 – 2026/11/08 这 30 天内被下载 1,710,805 次，日均约 57,027 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @cedar-policy/cedar-wasm 还在维护吗？

最新版本 4\.14\.0 发布于 2026/10/19（20 天前）；至今共发布 33 个版本，其中过去 12 个月发布了 16 个；首次发布于 2024/05/22。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

