Node.js 节点正在导入本地模块

Node.js 节点正在导入本地模块,node.js,module,Node.js,Module,我有一个我创建的模块的typescript文件 export function hello() { console.log('hello'); } export function bye() { console.log('bye'); } 在我的html中,我有如下操作: <head> <script src="./assets/js/myModule.ts" type="module"></scrip

我有一个我创建的模块的typescript文件

export function hello() {
  console.log('hello');
}

export function bye() {
  console.log('bye');
}
在我的html中,我有如下操作:

  <head>
    <script src="./assets/js/myModule.ts" type="module"></script>
  </head>
  <body>
    <span onclick="myModule.hello()">Press to greet</span>
  </body>
...
但每次启动服务器时,都会出现一个错误:
myModule未定义

我已经试过了:

  • 使用npm链接
  • 需要server.js中的文件,并通过
    app.use(myModule.ts)

尝试定义静态文件,例如:

应用程序使用(express.static(“资产”))


有关更多详细信息,请查看官方文档>

JS模块不会将其导出公开到全局(
window
)命名空间,因此如果没有更多设置,您无法从HTML属性调用它们。我尝试了这个,但没有成功:(我把它放在assets/js文件夹中,并添加了:
app.use(express.static(“/assets/js”);
你不需要放置“/assets/js”,只需要放置“assets”,就像app.use(express.static('assets'))
const proxy = require("http-proxy-middleware").createProxyMiddleware;
const Bundler = require("parcel-bundler");
const express = require("express");

const bundler = new Bundler("index.html");
const app = express();

app.use(
  "/api",
  proxy({
    target: process.env.API_SERVER || "http://localhost:1337/"
  })
);

app.use(bundler.middleware());

app.listen(Number(process.env.PORT || 1234));