如何修复 "nodemon app crashed" 错误消息?

How do I fix a "nodemon app crashed" error message?

我刚刚完成了 Full Stack React Projects,第二版

这本书的第 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. 正在删除 nodemone.json 并重新创建文件
  2. 正在删除节点模块文件并重新安装它

我该如何解决这个问题?

删除节点模块文件不会解决您的问题,因为根据错误日志,问题与您应用中使用的任何包无关。如您的错误日志

所示,您的应用问题很可能源于您的 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”文件路径是否正确。