
# 合约编译
1. 下载Node.js软件并安装，安装成功后，执行如下命令查看对应版本(软件对应版本无强制要求)。
   ```
   node -v
   npm -v
   ```
   ![](https://support.huaweicloud.com/devg-hbs/zh-cn_image_0000001297089861.png "点击放大")
   
2. 设置新目录assembly，在该目录下执行 npm init 命令，其中package name输入为assembly(目录名、package name建议保持一致，具体名称无强制要求，可自行定义)。 ![](https://support.huaweicloud.com/devg-hbs/zh-cn_image_0000001250609794.png "点击放大")
   
3. 执行如下命令通过npm安装加载器和编译器
   ```
   npm install --save @assemblyscript/loader 
   npm install --save-dev assemblyscript
   ```
   ![](https://support.huaweicloud.com/devg-hbs/zh-cn_image_0000001297008721.png "点击放大")
   ![](https://support.huaweicloud.com/devg-hbs/public_sys-resources/note_3.0-zh-cn.png)
   若安装过程中出现" idealTree:assembly: sill idealTree buildDeps"，请确认npm使用镜像源可正常访问。
   - 查看npm镜像源配置命令
     ```
     npm config get registry
     ```
     
   
   - 设置npm镜像源配置命令
     ```
     npm config set registry 国内镜像源地址
     ```
     
     
4. 执行如下命令，利用编译器提供的脚手架设置新项目
   ```
   npx asinit .
   ```
   ![](https://support.huaweicloud.com/devg-hbs/zh-cn_image_0000001297289293.png "点击放大")
   
5. 参考[示例Demo](https://support.huaweicloud.com/devg-hbs/hbs_devg_13.html)完成合约文件contract.ts编写与合约SDK文件index.ts引用后，执行build命令编译AssemblyScript类型的合约文件，编译成功后在build目录下生成optimized.wasm字节码文件（该字节码文件可重新命名）。
   ```
   npm run asbuild
   ```
   ![](https://support.huaweicloud.com/devg-hbs/zh-cn_image_0000001250769046.png "点击放大")
   
 
