WebAssembly学习(五):AssemblyScript - Hello World
一、项目创建
1.创建AssemblyScript根目录
1 mkdir AssemblyScript
2.安装AssemblyScript开发依赖
1 cnpm install --save-dev AssemblyScript/assemblyscript
3.在根目录下创建ts文件目录
1 mkdir assembly
4.在assembly目录下创建ts配置文件tsconfig.json,内容如下
1 { 2 "extends": "../node_modules/assemblyscript/std/assembly.json", 3 "include": [ 4 "./**/*.ts" 5 ] 6 }
5.在assembly目录下创建module.ts文件,内容如下
1 export function add(a: i32, b: i32): i32 { 2 return a + b; 3 }
二、编译
1.在AssemblyScript根目录下package.json中添加以下编译脚本命令
1 "scripts": { 2 "build": "npm run build:untouched && npm run build:optimized", 3 "build:untouched": "asc assembly/module.ts -t module.untouched.wat -b module.untouched.wasm --validate --sourceMap --measure", 4 "build:optimized": "asc assembly/module.ts -t module.optimized.wat -b module.optimized.wasm --validate --sourceMap --measure --optimize" 5 }
2.运行编译脚本,将assembly/module.ts编译为module.untouched.wasm二进制文件
1 npm run build
注意:如果构建失败,则可能需要(此时)npm install --save-dev ts-node
三、使用
1.在AssemblyScript根目录下创建module.js文件,内容如下,用来加载并实例化.wasm模块
1 const fs = require("fs"); 2 module.exports = new WebAssembly.Instance(new WebAssembly.Module(fs.readFileSync(__dirname + "/module.optimized.wasm"), {})).exports;
2.在AssemblyScript根目录下创建hello.js文件,内容如下,用来使用module.js导出的模块
1 var myModule = require("./module.js"); 2 console.log(myModule.add(1, 2));
3.运行结果如下
1 E:\Code\AssemblyScript>cmd.exe 2 Microsoft Windows [版本 10.0.17134.590] 3 (c) 2018 Microsoft Corporation。保留所有权利。 4 5 E:\Code\AssemblyScript>node hello.js 6 3 7 8 E:\Code\AssemblyScript>
4.最终目录结构如下
TS为JS类型的超集,AS为TS的子集,其中一些支持的数据类型和限制还有待学习,所以最终只是实现一个简单的加法运算。
分类:
WebAssembly
标签:
WebAssembly
, JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探