我想在服务器端运行一些用 ES2020 编写的 TypeScript 代码。目前我正在运行一个 ASP.NET Core 应用程序,所以我的想法是通过 Jering.Javascript.NodeJS 和 nodejs 运行 js。
所以从一个基本的例子开始。
var test = await StaticNodeJSService.InvokeFromFileAsync<string>("Scripts/server/modules/hello.ts", args: new object[] { });
你好.ts
module.exports = (callback, x, y) => { // Module must export a function that takes a callback as its first parameter
var result = "test"; // Your javascript logic
callback(null /* If an error occurred, provide an error object or message */, result); // Call the callback when you're done.
}
工作...添加了一些进口声明...
你好.ts
import someFunction from "./some.func";
module.exports = (callback, x, y) => { // Module must export a function that takes a callback as its first parameter
var result = "test"; // Your javascript logic
callback(null /* If an error occurred, provide an error object or message */, result); // Call the callback when you're done.
}
--> "不能在模块外使用 import 语句"
Nodejs 版本 v16.13.2 和 package.json 中已经设置
"type": "module"
更改为要求
你好.ts
const someFunction = require("./some.func")
module.exports = (callback, x, y) => { // Module must export a function that takes a callback as its first parameter
var result = "test"; // Your javascript logic
callback(null /* If an error occurred, provide an error object or message */, result); // Call the callback when you're done.
}
导致“InvocationException:ES Module 的 require() ... from ... 不支持。而是将 some.func.js in ... 的 require 更改为在所有 CommonJS 模块中都可用的动态 import()”
这样的无限循环。
通过看这里似乎是可能的,但我如何让它运行?