我正在使用Nuxt和Express服务器作为后端,我正在后端构建一个Rest API,每当我对server/index.js文件进行任何更改时,它都会重新编译客户端和服务器,有什么方法可以防止这种情况发生吗?每次我对API进行更改时,它都需要等待5-8秒,这大大降低了速度。
我看不出有任何理由需要重新编译整个系统,因为服务器使用Nodemon重新启动。
有没有什么办法解决这个问题呢?我已经尝试过加快构建过程,它有一些帮助,但还不够。在非Nuxt express服务器上,保存更改只需不到300毫秒。

发布于 2020-07-17 05:38:47
对于将来遇到这类问题的任何人,我找到了一个相当不错的解决方法。
在执行npm run dev之后,您可以在服务器/index.js文件中注释掉这些行
if (config.dev) {
const builder = new Builder(nuxt)
await builder.build()
}但问题是,当您第一次启动服务器时需要这些行,但之后就不需要它们了,所以本质上要确保这些行是uncommented的,然后在执行npm run dev之后对这些行执行comment out。
使用这种方法极大地加快了开发流程。
我希望Nuxt团队能想出一个更好的解决方案,但目前这是我找到的最好的解决方案。
发布于 2020-07-03 04:34:06
你在开发模式下使用你的应用程序,所以在这种方式下,当任何文件发生变化时,nuxt都会重新编译应用程序,以便在你的浏览器中自动显示你所做的更改。
而不是使用开发者模式
npm run dev您可以选择在生产模式下运行
npm start另一件事是,当您更改Api中的某些文件时,您的Nuxt会重新编译,我不知道您为什么在同一Nuxt目录中使用Api路径。
但是,在使用nodemon时,您可以排除对特定文件和文件夹的“监控”。只需在Nuxt的根文件夹中创建一个名为nodemon.json的文件。
看看nodemon文档:https://github.com/remy/nodemon#ignoring-files
现在插入如下内容:
{
"ignore": ["logs", "dist", ".nuxt", "file.js"]
}瞧,现在nodemon将不再监视这些文件夹和files.js
发布于 2021-02-04 08:34:44
这不是最好的解决方案,但重启让我抓狂,这里的每一个人:我有更好的事情可以花在上面。
因为Nodemon每次重启都会启动一个新进程,所以我们不能向环境中写入任何内容。要在进程之间通信,您可以写入文件系统:
const clientRefresh = !fs.existsSync("./nuxt-build.txt");
if (config.dev && clientRefresh) {
const builder = new Builder(nuxt);
await builder.build();
fs.writeFile("nuxt-build.txt", new Date() + "", { flag: "wx" }, function (err) {
if (err) throw err;
});
}为了确保Nuxt构建最初发生,而不是在重启时,我在我的package.json脚本中添加了以下内容:
"scripts": {
"dev": "rm -f nuxt-build.txt && cross-env NODE_ENV=development nodemon server/index.js --watch server",
}这应该就行了!您现在应该能够使用npm run dev启动您的应用程序
Pro top:将nuxt-build.txt添加到.gitignore
https://stackoverflow.com/questions/62452822
复制相似问题