[英]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和瀏覽器中均適用。
我無法更改TypeScript文件
如果您根本無法更改.ts
文件,請在相關.js
使用eval
:
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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.