【问题标题】:How to fix nodemon "block-scoped declarations..." error?如何修复nodemon“块范围声明......”错误?
【发布时间】:2023-05-14 12:39:02
【问题描述】:

这是我的 package.json 文件:

{
  "name": "pro-mern-stack",
  "version": "1.0.0",
  "description": "first init",
  "main": "index.js",
  "scripts": {
    "start": "nodemon server.js server.js",
    "compile": "babel src --presets react,es2015 --out-dir static",
    "watch": "babel src --presets react,es2015 --out-dir static --watch",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Yusuf",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.19.0",
    "express": "^4.17.1",
    "mongodb": "latest"
  },
  "devDependencies": {
    "express": "^4.17.1",
    "nodemon": "^2.0.2"
  }
}

我正在尝试运行 npm start 以启动 WATCHER,但我不断收到此错误:

> nodemon server.js server.js

    C:\MERN\pro-mern-stack\node_modules\nodemon\lib\monitor\run.js:356
        let sig = signal.replace('SIG', '');
        ^^^

    SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
        at exports.runInThisContext (vm.js:53:16)
        at Module._compile (module.js:373:25)
        at Object.Module._extensions..js (module.js:416:10)
        at Module.load (module.js:343:32)
        at Function.Module._load (module.js:300:12)
        at Module.require (module.js:353:17)
        at require (internal/module.js:12:17)
        at Object.<anonymous> (C:\MERN\pro-mern-stack\node_modules\nodemon\lib\monitor\index.js:2:8)
        at Module._compile (module.js:409:26)
        at Object.Module._extensions..js (module.js:416:10)

    npm ERR! Windows_NT 10.0.10240
    npm ERR! argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "start"
    npm ERR! node v4.5.0
    npm ERR! npm  v2.15.9
    npm ERR! code ELIFECYCLE
    npm ERR! pro-mern-stack@1.0.0 start: `nodemon server.js server.js`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the pro-mern-stack@1.0.0 start script 'nodemon server.js server.js'.
    npm ERR! This is most likely a problem with the pro-mern-stack package,
    npm ERR! not with npm itself.
    npm ERR! Tell the author that this fails on your system:
    npm ERR!     nodemon server.js server.js
    npm ERR! You can get information on how to open an issue for this project with:
    npm ERR!     npm bugs pro-mern-stack
    npm ERR! Or if that isn't available, you can get their info via:
    npm ERR!
    npm ERR!     npm owner ls pro-mern-stack
    npm ERR! There is likely additional logging output above.

    npm ERR! Please include the following file with any support request:
    npm ERR!     C:\mern\pro-mern-stack\npm-debug.log 

我在 Windows 10 上使用 powershell 运行。我尝试全局安装,但没有成功。还有最新版本的nodemon。请问,我该如何解决这个问题?我已经多次重新安装了 nodemon,即使我直接在控制台中运行它,仍然会出现相同的错误。谢谢!

【问题讨论】:

  • 你能从启动脚本中删除一个 server.js,它只是 nodemon server.js

标签: javascript node.js npm nodemon


【解决方案1】:

我在 npm 脚本中看到了问题。您应该将其更新为 nodemon server.js

【讨论】:

  • 我试过了,但我一直收到同样的错误
  • 好的。我从日志中看到您正在使用的节点 vetsion 是导致问题的 v4.5.0。这个版本不支持 let , const 等没有严格模式。您应该更新您的节点版本。它将解决问题。或者你可以在代码中应用严格模式。
  • 谢谢。我已经尝试过应用严格模式,但没有奏效,但更新节点解决了问题。谢谢。