我有一个关于TypeScript的项目,我需要在NodeJS上运行已编译的JS文件。问题是我无法更改TypeScript文件。问题是TypeScript编译器生成package main
import "fmt"
func main() {
n := 123454321
r := reverse(n)
fmt.Println(r == n)
}
func reverse(n int) int {
r := 0
for {
if n > 0 {
r = r*10 + n%10
n = n / 10
} else {
break
}
}
return r
}
并将所有变量和函数附加到此var mymodule
。而且我不知道如何将此模块导入NodeJS。我可以在NodeJS中导入所有变量(包括本地)吗?
答案 0 :(得分:0)
TypeScript项目应该使用CommonJS模块系统。
如果您无法更改模块系统,可以在.ts
文件末尾添加:
declare var module: { exports };
if (typeof module === "object" && module.exports)
module.exports = mymodule;
您可以写this.mymodule1 = ...
而不是var mymodule1 = ...
。此模式适用于Node.js和浏览器。
我无法更改TypeScript文件
如果您根本无法更改.ts
文件,请使用相关eval
中的.js
:
var fs = require("fs");
eval(fs.readFileSync("myTSModule.js", "utf8"));
mymodule.myCoolMethod("hello");
此外,您可以通过runInContext
:
var context = vm.createContext();
vm.runInContext(code, context);
var mymodule = context.mymodule;