0x00 记第一次编译Rust项目并用npm部署【Sandspied】

Linx3f / 2024-09-17 / 原文

项目代码

https://github.com/maxbittker/sandspiel

技术栈

1 Rust

一种具有高效、内存安全等特性的高级语言。

2 Cargo

Rust的包管理器。

3 WebAssembly

在现代Web开发中,WASM已成为一种强大的工具。它使得开发者可以在浏览器中运行高性能的代码,跨越传统的JavaScript性能限制。
WebAssembly可以通过C++或者Rust直接编译为网页的工具,是除了js的另一种可以在Web运行的语言,具体来说,会将生成后的.wasm文件嵌入到网页中的<script>里。
而在Cargo中,wasm包名为wasm-pack,通过cargo install wasm-pack安装。wasm-pack build命令会编译Rust为WebAssembly。需要注意的是,命令执行的目录必须要有Rust核心配置文件Cargo.toml。

4 Node.js

js最开始是运行在浏览器上的,浏览器中的V8引擎可以将js代码编译为机器代码。而Node.js其作用就是为V8提供了容器,可以直接在服务端作为js运行时环境。

5 npm

npm是Node.js中的js包管理器,可以从网络上下载代码从而复用,管理本地安装npm包的最好方式就是在项目中创建package.json。
npm install命令可以把package.json中devDependencies字段里的插件自动下载到node_modules下。
npm run xxx会执行package.json中scripts字段里对应的xxx命令,在本项目中,执行的是webpack命令(同样是一个npm中的包,在devDependencies里可以找到),作用是将所有包合并为一个js文件并启动服务监听地址。