我有一个非常基本的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中都尝试过。知道什么可能是错的吗?
答案 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 的替代方案。它对我有用
答案 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)
我之前解决了类似的问题。我做了以下事情,对我来说确实有用。
npm start run:dev
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]