【问题标题】:How do I fix a "nodemon app crashed" error message?如何修复“nodemon 应用程序崩溃”错误消息?
【发布时间】:2021-11-27 03:02:14
【问题描述】:

我刚刚完成了 Full Stack React Projects, Second Edition 一书的第 2 章。

当我在终端输入 yarn development 以检查我的代码时,我收到以下错误消息:

yarn run v1.22.15
warning package.json: License should be a valid SPDX license expression
$ nodemon
[nodemon] 2.0.2
[nodemon] to restart at any time, enter `rs`
[nodemon] watching dir(s): server/**/*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `webpack --mode=development --config webpack.config.server.js && node ./dist/server.generated.js`
Hash: 7630758f261bc6024be1
Version: webpack 4.42.1
Time: 475ms
Built at: 10/06/2021 2:48:53 PM
              Asset      Size  Chunks             Chunk Names
server.generated.js  19.4 KiB    main  [emitted]  main
Entrypoint main = server.generated.js
[0] multi ./server/server.js 28 bytes {main} [built]
[./node_modules/webpack/buildin/harmony-module.js] (webpack)/buildin/harmony-module.js 573 bytes {main} [built]
[./node_modules/webpack/buildin/module.js] (webpack)/buildin/module.js 497 bytes {main} [built]
[./server/devBundle.js] 1.6 KiB {main} [built]
[./server/server.js] 2.19 KiB {main} [built]
[./template.js] 1.15 KiB {main} [built]
[./webpack.config.client.js] 1.8 KiB {main} [built]
[express] external "express" 42 bytes {main} [built]
[mongodb] external "mongodb" 42 bytes {main} [built]
[path] external "path" 42 bytes {main} [built]
[webpack] external "webpack" 42 bytes {main} [built]
[webpack-dev-middleware] external "webpack-dev-middleware" 42 bytes {main} [built]
[webpack-hot-middleware] external "webpack-hot-middleware" 42 bytes {main} [built]
webpack:///./server/server.js?:23
app.use('/dist', express__WEBPACK_IMPORTED_MODULE_0___default.a.static(path__WEBPACK_IMPORTED_MODULE_2___default.a.join(CURRENT_WORKING_DIR, 'dist')));
^

ReferenceError: Cannot access 'app' before initialization
    at Module.eval (webpack:///./server/server.js?:23:1)
    at eval (webpack:///./server/server.js?:65:30)
    at Module../server/server.js (/Users/brittanysoozinsoozin/Library/Mobile Documents/com~apple~CloudDocs/Desktop/Desktop/TMDP/Molo9/Dev/Full Stack React/Ch2/MyCode/dist/server.generated.js:132:1)
    at __webpack_require__ (/Users/brittanysoozinsoozin/Library/Mobile Documents/com~apple~CloudDocs/Desktop/Desktop/TMDP/Molo9/Dev/Full Stack React/Ch2/MyCode/dist/server.generated.js:21:30)
    at eval (webpack:///multi_./server/server.js?:1:18)
    at Object.0 (/Users/brittanysoozinsoozin/Library/Mobile Documents/com~apple~CloudDocs/Desktop/Desktop/TMDP/Molo9/Dev/Full Stack React/Ch2/MyCode/dist/server.generated.js:166:1)
    at __webpack_require__ (/Users/brittanysoozinsoozin/Library/Mobile Documents/com~apple~CloudDocs/Desktop/Desktop/TMDP/Molo9/Dev/Full Stack React/Ch2/MyCode/dist/server.generated.js:21:30)
    at /Users/brittanysoozinsoozin/Library/Mobile Documents/com~apple~CloudDocs/Desktop/Desktop/TMDP/Molo9/Dev/Full Stack React/Ch2/MyCode/dist/server.generated.js:85:18
    at Object.<anonymous> (/Users/brittanysoozinsoozin/Library/Mobile Documents/com~apple~CloudDocs/Desktop/Desktop/TMDP/Molo9/Dev/Full Stack React/Ch2/MyCode/dist/server.generated.js:88:10)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
[nodemon] app crashed - waiting for file changes before starting...

我尝试了以下解决方案:

  1. https://stackoverflow.com/a/54450694/14537132
  2. https://stackoverflow.com/a/63298885/14537132
  3. 删除 nodemone.json 并重新创建文件
  4. 删除节点模块文件并重新安装它

我该如何解决这个问题?

【问题讨论】:

  • 问题与 Nodemon 或 React 无关。

标签: javascript node.js reactjs webpack mern


【解决方案1】:

删除节点模块文件不会解决您的问题,因为根据错误日志的问题不在于您的应用中使用的任何包。如您的错误日志中所示,您的应用问题很可能源自您的 server.js 文件

ReferenceError: Cannot access 'app' before initialization
at Module.eval (webpack:///./server/server.js?:23:1)
at eval (webpack:///./server/server.js?:65:30)
at Module../server/server.js (/Users/brittanysoozinsoozin/Library/Mobile Documents/com~apple~CloudDocs/Desktop/Desktop/TMDP/Molo9/Dev/Full Stack React/Ch2/MyCode/dist/server.generated.js:132:1)
at __webpack_require__ (/Users/brittanysoozinsoozin/Library/Mobile Documents/com~apple~CloudDocs/Desktop/Desktop/TMDP/Molo9/Dev/Full Stack React/Ch2/MyCode/dist/server.generated.js:21:30)
at eval (webpack:///multi_./server/server.js?:1:18)

我可以看到,当 nodejs 尝试访问您在 上的 server.js 文件中声明的应用程序的 静态文件 时,会发生崩溃第 23 行

在第 23 行使用 app 变量之前,您没有对其进行初始化。您需要执行以下操作:

const app = require('./app'); // this will import your app.js file that is in your root folder assuming you are using that type of setup.

另外,检查“dist”文件路径是否正确。

【讨论】:

  • 就是这样!谢谢!!!
  • @AdiPineapple 太棒了。我很高兴你把它解决了。您可以将此标记为答案,以帮助遇到类似问题的其他人。
猜你喜欢
  • 2018-10-13
  • 2021-06-21
  • 2017-09-10
  • 1970-01-01
  • 1970-01-01
  • 2015-12-25
  • 2023-01-08
  • 2020-06-09
  • 1970-01-01
相关资源
最近更新 更多