Nodemon停留在“由于更改而重新启动......”并且不会重新启动服务器

时间:2018-01-31 15:45:47

标签: node.js nodemon

我有一个非常基本的nodemon配置。我正在修复我继承的遗留节点7项目,并试图让开发过程有点痛苦。首先,正确的重启和转换过程(因为它是使用ES6模块语法构建的)。

这是我的文件夹结构:

- src
  |- index.js
- dist
  |- index.js
- index.js
- nodemon.js

我将nodemon作为"start:dev": "nodemon index.js"

运行

这是内容:

// index.js
if (process.env.NODE_ENV === 'production') {
  require('./dist/index.js');
} else {
  require('babel-register')({});
  require('babel-polyfill');
  require('./src/index.js');
}

这个想法是代码在运行时被转换,因此我不必像以前那样手动手动停止服务器,重新转换,启动服务器

最后但并非最不重要的是,nodemon config

// nodemon.js
{
  "restartable": "rs",
  "ignore": [
    ".git",
    "node_modules/**/node_modules"
  ],
  "verbose": true,
  "watch": [
    "src"
  ],
  "env": {
    "NODE_ENV": "development"
  },
  "ext": "js json"
}

我从MERN接受了此设置,我认为它应该可行。但是,当我进行更改并保存时,它会:

[nodemon] files triggering change check: src/index.js
[nodemon] matched rule: /Users/me/project/path/src/**/*
[nodemon] changes after filters (before/after): 1/1
[nodemon] restarting due to changes...
[nodemon] src/index.js

(stuck here. it never restarts)

我一直在检查代码,而且我唯一不熟悉的东西,可能是它可能导致它我会想到child_process.execFileSync()调用,它会调用java工具;和mysql.createPool()mysql包)的连接池。

在Node 7.5和Node 8.9中都尝试过。知道什么可能是错的吗?

17 个答案:

答案 0 :(得分:1)

使用以下两个命令:

npm install supervisor -g
supervisor src/index.js

答案 1 :(得分:0)

尝试执行

npm -g uninstall nodemon

然后

npm -g install nodemon

那为我解决了。

答案 2 :(得分:0)

当我使用最新版本的 nodeJS 时,它不起作用。 但是当我改回 10.15.0 时,就正常了。

答案 3 :(得分:0)

Package.Json 文件中添加启动脚本

"nodemon": "nodemon dev-server.js"

并启动服务器

npm run nodemon

答案 4 :(得分:0)

Supervisor 是 nodemon 的替代方案。它对我有用

  1. npm i 主管 -g
  2. 主管 app.js

答案 5 :(得分:0)

我使用的是 Windows 10,我遇到了同样的问题。我使用了主管而不是 nodemon,它开始对我正常工作。

运行以下命令:

npm install supervisor

并在 package.json 中在脚本键中添加以下代码行

"scripts": {"start": "supervisor app.js"}

答案 6 :(得分:0)

我正在使用Windows 10,并且遇到了同样的问题。我使用主管而不是nodemon,它运行良好。

运行以下命令:

npm install supervisor -g

supervisor src/index.js

答案 7 :(得分:0)

转到我的计算机的属性,单击“系统保护”,然后单击“高级”,然后单击“环境变量”。 有两种类型的变量。用户变量和系统变量。 在系统变量中,单击路径,然后单击编辑,单击新建(添加三个变量) %SystemRoot%\ system32; %SystemRoot%; %SystemRoot%\ System \ Wbem 然后单击确定。重新运行您的cmd,然后运行。

答案 8 :(得分:0)

我之前解决了类似的问题。我做了以下事情,对我来说确实有用。

  1. npm start run:dev

  2. nodemon npm start run:dev

首先要正常启动服务器,然后再使用nodemon。

答案 9 :(得分:0)

这对我有用;

删除这些目录; public class Test { public static void main(String[] args) { Child child = new Child(); child.printAll(); System.out.println(child.size()); } private static class Parent<T> { protected T[] items; public Parent() { items = (T[]) new Object[10]; } } private static class Child extends Parent<String> { public Child() { items[0] = "hello"; // Fails at runtime } public void printAll() { for (String s : items) { // Fails at runtime System.out.println(s); } } public int size() { return items.length; // Fails at runtime } } } C:/Users/{user}/AppData/Roaming/npm,并重新安装了全局npm模块。

纯粹!

答案 10 :(得分:0)

Nodemon现在被认为是过时的,因此它的替代npm软件包超级用户可以由 npm i超级用户-g 全局安装,并用作超级用户filename.js

答案 11 :(得分:0)

默认情况下,nodemon查找.js文件。 而且由于其他extn文件与index.js文件的链接,它无法重新启动。

节点index.js -e js,hbs,html

您可以提及与index.js文件链接的所有扩展名

希望它对您有用。 谢谢

答案 12 :(得分:0)

在环境变量中添加以下路径。它将解决您的问题。 %SystemRoot%\ system32;%SystemRoot%;%SystemRoot%\ System32 \ wbem;

答案 13 :(得分:0)

检查是否将代码放在没有写许可权的位置。 (特别是放在台式机上的人) 如果否,请将该文件夹移动到具有写许可权的其他位置。 或更改文件夹权限。

答案 14 :(得分:0)

我正在使用窗口10,不小心删除了%PATH%变量后遇到了这个问题。如果是这样,请尝试添加以下三个路径:

  

C:\ Windows; C:\ Windows \ system32; C:\ Windows \ System32 \ Wbem;

答案 15 :(得分:0)

type:ps aux | grep节点 或ps aux | grep端口(例如3000)

并找到该进程复制其processId 然后输入终端 杀死-KILL processId

它将强行停止您的过程 再次启动服务器

答案 16 :(得分:-1)

以管理员身份打开cmd,写入nodemon [namefile.js]