Node.js 节点正在导入本地模块
我有一个我创建的模块的typescript文件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
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)
有关更多详细信息,请查看官方文档>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));