繁体   English   中英

NodeJS:导入所有局部变量

[英]NodeJS: Import all local variables

我在TypeScript上有一个项目,我需要在NodeJS上运行已编译的JS文件。 问题是我无法更改TypeScript文件。 问题是TypeScript编译器使var mymodule并将所有变量和函数附加到此var 而且我不知道如何将此模块导入NodeJS。 我可以在NodeJS中导入所有变量(包括局部变量)吗?

做正确的事

TypeScript项目应使用CommonJS模块系统。

手动添加导出

如果您不能更改模块系统,则可以在.ts文件末尾添加:

declare var module: { exports };
if (typeof module === "object" && module.exports)
    module.exports = mymodule;

导出几个子模块

您可以编写this.mymodule1 = ...而不是var mymodule1 = ... 此模式在Node.js和浏览器中均适用。

使用“ eval”

我无法更改TypeScript文件

如果您根本无法更改.ts文件,请在相关.js使用eval

var fs = require("fs");
eval(fs.readFileSync("myTSModule.js", "utf8"));

mymodule.myCoolMethod("hello");

使用“ runInContext”

您还可以通过runInContext隔离环境模块的运行上下文:

var context = vm.createContext();
vm.runInContext(code, context);
var mymodule = context.mymodule;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM