【问题标题】:NodeJs does not startNodeJs 没有启动
【发布时间】:2020-06-01 16:35:15
【问题描述】:

编辑:我更改了这个问题的标题,因为它看起来更准确。

这是我的 package.json 文件:

{
 "name": "application-name",
 "version": "0.0.1",
 "private": true,
 "scripts": {
 "start": "node ./bin/www"
},
 "dependencies": {
 "express": "~4.0.0",
 "static-favicon": "~1.0.0",
 "morgan": "~1.0.0",
 "cookie-parser": "~1.0.1",
 "body-parser": "~1.0.0",
 "debug": "~0.7.4",
 "jade": "~1.3.0",
 "mongodb": "*",
 "monk": "*"
 }
}

点击 npm install 后我并没有真正得到错误,但似乎 node 没有安装所有依赖项。因为当我们在我同事的电脑上输入完全相同的代码时,他的 promt 对已安装的依赖项提供了更多反馈,并且在那里运行良好。

当我现在点击“npm start”时,它会在几秒钟后终止而没有任何响应

我知道目前节点存在错误,我已经尝试清除我的 npm chache 并添加“npm update”命令,但它仍然不起作用。

这似乎是我的电脑的问题,因为正如我所说,在我同事的电脑上一切正常。我希望你有任何想法可能是什么问题。提前非常感谢!

编辑:这是 npm list 命令给我的:

├─┬ body-parser@1.0.2
│ ├── qs@0.6.6
│ ├─┬ raw-body@1.1.3
│ │ └── bytes@0.2.1
│ └─┬ type-is@1.1.0
│   └── mime@1.2.11
├─┬ cookie-parser@1.0.1
│ ├── cookie@0.1.0
│ └── cookie-signature@1.0.3
├── debug@0.7.4
├─┬ express@4.0.0
│ ├─┬ accepts@1.0.0
│ │ ├── mime@1.2.11
│ │ └── negotiator@0.3.0
│ ├── buffer-crc32@0.2.1
│ ├── cookie@0.1.0
│ ├── cookie-signature@1.0.3
│ ├── debug@0.8.0
│ ├── escape-html@1.0.1
│ ├── fresh@0.2.2
│ ├── merge-descriptors@0.0.2
│ ├── methods@0.1.0
│ ├── parseurl@1.0.1
│ ├── path-to-regexp@0.1.2
│ ├── qs@0.6.6
│ ├── range-parser@1.0.0
│ ├─┬ send@0.2.0
│ │ ├── debug@0.8.0
│ │ └── mime@1.2.11
│ ├─┬ serve-static@1.0.1
│ │ └─┬ send@0.1.4
│ │   ├── debug@0.8.0
│ │   ├── fresh@0.2.0
│ │   ├── mime@1.2.11
│ │   └── range-parser@0.0.4
│ ├─┬ type-is@1.0.0
│ │ └── mime@1.2.11
│ └── utils-merge@1.0.0
├─┬ jade@1.3.1
│ ├── character-parser@1.2.0
│ ├── commander@2.1.0
│ ├─┬ constantinople@2.0.0
│ │ └─┬ uglify-js@2.4.13
│ │   ├── async@0.2.10
│ │   ├─┬ optimist@0.3.7
│ │   │ └── wordwrap@0.0.2
│ │   ├─┬ source-map@0.1.33
│ │   │ └── amdefine@0.1.0
│ │   └── uglify-to-browserify@1.0.2
│ ├── mkdirp@0.3.5
│ ├─┬ monocle@1.1.51
│ │ └─┬ readdirp@0.2.5
│ │   └─┬ minimatch@0.2.14
│ │     ├── lru-cache@2.5.0
│ │     └── sigmund@1.0.0
│ ├─┬ transformers@2.1.0
│ │ ├─┬ css@1.0.8
│ │ │ ├── css-parse@1.0.4
│ │ │ └── css-stringify@1.0.5
│ │ ├─┬ promise@2.0.0
│ │ │ └── is-promise@1.0.0
│ │ └─┬ uglify-js@2.2.5
│ │   ├─┬ optimist@0.3.7
│ │   │ └── wordwrap@0.0.2
│ │   └─┬ source-map@0.1.33
│ │     └── amdefine@0.1.0
│ └─┬ with@3.0.0
│   └─┬ uglify-js@2.4.13
│     ├── async@0.2.10
│     ├─┬ optimist@0.3.7
│     │ └── wordwrap@0.0.2
│     ├─┬ source-map@0.1.33
│     │ └── amdefine@0.1.0
│     └── uglify-to-browserify@1.0.2
├─┬ mongodb@1.4.0
│ ├─┬ bson@0.2.7
│ │ └── nan@0.8.0
│ └── kerberos@0.0.3
├─┬ monk@0.8.1
│ ├── debug@0.8.0
│ ├─┬ mongoskin@0.4.4
│ │ └─┬ mongodb@1.1.11
│ │   └── bson@0.1.5
│ └── mpromise@0.4.4
├─┬ morgan@1.0.0
│ └── bytes@0.2.1
└── static-favicon@1.0.2

所以看起来确实已经安装了依赖项(如果我没有完全错?)。我的“npm start”命令仍然在几秒钟后终止......有什么猜测吗?

【问题讨论】:

  • 当你做npm list时你会得到什么?
  • 感谢您的回答杰里米。我编辑了我的问题,所以我可以发布我的完整列表。

标签: node.js dependencies npm


【解决方案1】:

如果您清除了 npm 缓存,请尝试同时删除您应用的 node_modules 中的所有文件夹,然后再次运行 npm install
您可能想尝试在DEBUG 模式下启动您的应用程序,看看它是否会给您任何提示:

DEBUG=express:* node ./bin/www 

【讨论】:

  • 好吧,现在我真的开始觉得自己很笨了。我尝试了你的前两种方法,但没有奏效。当我尝试设置 DEBUG 变量时,我的提示说 DEBUG 未知,尽管我点击了“npm install debug”。对不起,如果这看起来很愚蠢......
  • 嗯。如果你已经安装了 express,那么你应该已经有了调试模块。无需单独安装。如果它不存在,那么可能是缺少 express 模块。它只发生在这个特定的应用程序或任何节点应用程序上吗?您可以尝试将此package.json 复制到新目录并从那里执行npm install 吗?终端告诉你什么?
  • 感谢亚历山大的帮助!是的,每个 Node 应用程序都不会启动。但是在我同事的 DEBUG 命令上也是未知的。也许我们只是做错了?如果我切换方向并在那里安装我的 npm,它会说完全相同:S
  • 对不起,我的意思不是一个方向,而是一个文件夹。尝试在您的主目录中的某处创建一个新文件夹,例如~/temp/myapp,然后将您的package.json 复制到那里。然后打开一个终端窗口,转到您新创建的文件夹并执行npm install。终端的输出是什么?它是从远程服务器获取模块还是什么也没发生?
  • 它说的和以前一样。它似乎已经安装了所有依赖项并以“> kerberos@0.0.3 install D:\test\node_modules\mongodb\node_modules\kerberos > (node-gyp rebuild 2> builderror.log) || (exit 0)”结尾
【解决方案2】:

如果光标在节点 app.js(server.js 或任何 js 名称)上返回,如下所示

c:/users/<project-path>:node app.js
c:/users/<project-path>:

那么您可能正在使用 express 4 生成器 所以试试下面的命令

set DEBUG=<project-folder-name>:* & npm start 

【讨论】:

    【解决方案3】:

    不确定是否已解决或忽略此问题并找到解决方法。刚刚自己解决了这个问题,发现问题不在于 NodeJS,而在于其中一个依赖项。我未能安装 ejs,我的所有文件都是基于 ejs 的。所以我得到了和你一样的错误。

    所以最好检查一下你的所有依赖是否都安装正确。

    【讨论】:

    • ejs跟这个问题有什么关系?作者从来没有提到过ejs。
    • 我举个例子。作者可能正在使用他可能尚未安装的任何其他东西。因为没有安装 ejs,我也发生了同样的事情。只是想做任何可能的帮助。如果不相关请删除。我还是初学者。
    • 不,没关系。这是一个很好的答案,你应该说“尝试寻找丢失的依赖项”这样的话,这样人们就不会被所有无关的 ejs 包的讨论所迷惑。
    • 我不知道怎么说。将来会遵循这个。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-06-11
    • 2016-10-04
    • 2016-02-11
    • 2011-12-09
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    相关资源
    最近更新 更多