簡體   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