isolated-vm 项目使用教程

isolated-vm 项目使用教程

isolated-vmSecure & isolated JS environments for nodejs项目地址:https://gitcode.com/gh_mirrors/is/isolated-vm

目录结构及介绍

isolated-vm/
├── examples/
│   ├── inspector-example.js
│   ├── memory-limit.js
│   ├── module-support.js
│   ├── multithreaded.js
│   ├── secure.js
│   └── isolated.js
├── lib/
│   ├── isolate.js
│   ├── context.js
│   ├── script.js
│   ├── module.js
│   ├── callback.js
│   ├── reference.js
│   ├── external_copy.js
│   └── index.js
├── src/
│   ├── isolate.cc
│   ├── context.cc
│   ├── script.cc
│   ├── module.cc
│   ├── callback.cc
│   ├── reference.cc
│   ├── external_copy.cc
│   └── index.cc
├── test/
│   ├── isolate.spec.js
│   ├── context.spec.js
│   ├── script.spec.js
│   ├── module.spec.js
│   ├── callback.spec.js
│   ├── reference.spec.js
│   ├── external_copy.spec.js
│   └── index.spec.js
├── .gitignore
├── .npmignore
├── binding.gyp
├── package.json
├── README.md
└── LICENSE
  • examples/: 包含各种示例代码,展示如何使用 isolated-vm 的不同功能。
  • lib/: 包含项目的主要 JavaScript 文件,这些文件是 isolated-vm 的核心实现。
  • src/: 包含项目的 C++ 源代码,这些代码是 isolated-vm 的底层实现。
  • test/: 包含项目的测试文件,用于确保代码的正确性。
  • .gitignore: 指定 Git 忽略的文件和目录。
  • .npmignore: 指定 npm 发布时忽略的文件和目录。
  • binding.gyp: 用于编译 C++ 代码的配置文件。
  • package.json: 项目的 npm 配置文件,包含项目依赖、脚本等信息。
  • README.md: 项目的说明文档。
  • LICENSE: 项目的许可证。

项目的启动文件介绍

项目的启动文件通常是 examples/ 目录下的示例文件,例如 inspector-example.js。这些文件展示了如何使用 isolated-vm 的不同功能。以下是一个示例启动文件的内容:

const ivm = require('isolated-vm');
const isolate = new ivm.Isolate({ memoryLimit: 128 });

const context = isolate.createContextSync();
const jail = context.global;
jail.setSync('global', jail.derefInto());

const script = isolate.compileScriptSync('1 + 1');
const result = script.runSync(context);

console.log(result); // 输出: 2

项目的配置文件介绍

项目的配置文件主要是 package.jsonbinding.gyp

package.json

package.json 文件包含了项目的元数据和依赖信息,以及一些脚本命令。以下是部分内容:

{
  "name": "isolated-vm",
  "version": "4.0.0",
  "description": "Access to multiple isolates",
  "main": "lib/index.js",
  "scripts": {
    "install": "node-gyp rebuild",
    "test": "tap test/*.spec.js"
  },
  "dependencies": {
    "node-addon-api": "^3.0.0"
  },
  "devDependencies": {
    "tap": "^14.10.7"
  },
  "gypfile": true,
  "license": "MIT"
}

binding.gyp

binding.gyp 文件用于配置 C++ 代码的编译选项。以下是部分内容:

{
  "targets": [
    {
      "target_name": "isolated_vm",
      "sources": [
        "src/isolate.cc",
        "src/context.cc",
        "src/script.cc",
        "src/module.cc",
        "src/callback.cc",
        "src/reference.cc",
        "src/external_copy.cc

isolated-vmSecure & isolated JS environments for nodejs项目地址:https://gitcode.com/gh_mirrors/is/isolated-vm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冯海莎Eliot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值