首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Nuxt w/ Express中,如何在保存服务器时防止重新编译

在Nuxt w/ Express中,如何在保存服务器时防止重新编译
EN

Stack Overflow用户
提问于 2020-06-18 22:51:10
回答 3查看 354关注 0票数 3

我正在使用Nuxt和Express服务器作为后端,我正在后端构建一个Rest API,每当我对server/index.js文件进行任何更改时,它都会重新编译客户端和服务器,有什么方法可以防止这种情况发生吗?每次我对API进行更改时,它都需要等待5-8秒,这大大降低了速度。

我看不出有任何理由需要重新编译整个系统,因为服务器使用Nodemon重新启动。

有没有什么办法解决这个问题呢?我已经尝试过加快构建过程,它有一些帮助,但还不够。在非Nuxt express服务器上,保存更改只需不到300毫秒。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-07-17 05:38:47

对于将来遇到这类问题的任何人,我找到了一个相当不错的解决方法。

在执行npm run dev之后,您可以在服务器/index.js文件中注释掉这些行

代码语言:javascript
运行
复制
if (config.dev) {
    const builder = new Builder(nuxt)
    await builder.build()
}

但问题是,当您第一次启动服务器时需要这些行,但之后就不需要它们了,所以本质上要确保这些行是uncommented的,然后在执行npm run dev之后对这些行执行comment out

使用这种方法极大地加快了开发流程。

我希望Nuxt团队能想出一个更好的解决方案,但目前这是我找到的最好的解决方案。

票数 1
EN

Stack Overflow用户

发布于 2020-07-03 04:34:06

你在开发模式下使用你的应用程序,所以在这种方式下,当任何文件发生变化时,nuxt都会重新编译应用程序,以便在你的浏览器中自动显示你所做的更改。

而不是使用开发者模式

代码语言:javascript
运行
复制
npm run dev

您可以选择在生产模式下运行

代码语言:javascript
运行
复制
npm start

另一件事是,当您更改Api中的某些文件时,您的Nuxt会重新编译,我不知道您为什么在同一Nuxt目录中使用Api路径。

但是,在使用nodemon时,您可以排除对特定文件和文件夹的“监控”。只需在Nuxt的根文件夹中创建一个名为nodemon.json的文件。

看看nodemon文档:https://github.com/remy/nodemon#ignoring-files

现在插入如下内容:

代码语言:javascript
运行
复制
{   
  "ignore": ["logs", "dist", ".nuxt", "file.js"] 
}

瞧,现在nodemon将不再监视这些文件夹和files.js

票数 1
EN

Stack Overflow用户

发布于 2021-02-04 08:34:44

这不是最好的解决方案,但重启让我抓狂,这里的每一个人:我有更好的事情可以花在上面。

因为Nodemon每次重启都会启动一个新进程,所以我们不能向环境中写入任何内容。要在进程之间通信,您可以写入文件系统:

代码语言:javascript
运行
复制
  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脚本中添加了以下内容:

代码语言:javascript
运行
复制
  "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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62452822

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档