如何解决tsc重新编译时如何热重载表达?
我有一个简单的nodeJS服务器,并且已设置它来监视使用tsc --watch
进行的代码更改。我想知道的是,如何在更改代码时设置express
以重新加载自身(请注意,我是在Windows上专门询问的)?
我认为这与chokidar
有关,其中我有以下index.ts
代码
import AWS from "aws-sdk";
import express from "express";
import chokidar from "chokidar";
console.log(AWS.S3);
const route = express.Router();
route.get("/signed-url-put-object",async (req,res) => {
console.log(process.env)
});
if (process.env.NODE_ENV !== "production") {
const watcher = chokidar.watch("./index.js");
watcher.on("all",()=> {
console.log("reloading...");
// what do I do here?
})
}
express().listen(3000,()=>console.log('listening'))
解决方法
试试我从this repo摘录的摘录。
watcher.on('ready',function() {
watcher.on('all',function() {
console.log("Clearing /server/ module cache from server");
Object.keys(require.cache).forEach(function(id) {
if (/[\/\\]server[\/\\]/.test(id)) delete require.cache[id];
});
});
});
请记住,您可能会遇到issues。
当前端和后端都在同一个仓库中时,我通常使用nodemon和concurrently满足我的热装需求。
通过并发和nodemon,我会遇到这样的事情。
"scripts": {
"start": "concurrently \"yarn start:fe\" \"yarn start:watch\"","start:watch": "nodemon --inspect=5858 ./server/server.ts","start:be": "set TS_NODE_PROJECT=./tsconfig.server.json && node --inspect=5858 -r ts-node/register ./server/server.ts","start:fe": "react-app-rewired start --scripts-version react-scripts",}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。