最后如果想获取更多项目完整的源码, 或者想学习更多H5游戏, webpack,node,gulp,css3,javascript,nodeJS,canvas数据可视化等前端知识和实战,欢迎在《趣谈前端》学习讨论,共同探索前端的边界。[NODEMON]- babel-node 未被识别为内部或外部命令
【中文标题】[NODEMON]- babel-node 未被识别为内部或外部命令【英文标题】:[NODEMON]- babel-node not recognized as internal or external command
【发布时间】:2021-04-25 21:00:18
【问题描述】:
我正在尝试设置一个简单的快速服务器。我正在使用 nodemon 启动我的开发服务器但我的应用程序不断崩溃,因为它无法识别“babel-node”命令。
错误输出是
[nodemon] 2.0.7
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,json
[nodemon] starting `babel-node index.js`
'babel-node' is not recognized as an internal or external command,
operable program or batch file.
[nodemon] app crashed - waiting for file changes before starting...
我的 package.json 脚本是
"scripts":
"test": "echo \"Error: no test specified\" && exit 1",
"startdev": "nodemon --ext js,json --exec babel-node index.js",
"start": "babel-node index.js"
我的依赖和开发依赖是
"dependencies":
"express": "^4.17.1",
"express-graphql": "^0.12.0",
"graphql": "^15.4.0",
"uuid": "^8.3.2"
,
"devDependencies":
"@babel/cli": "^7.12.10",
"@babel/core": "^7.12.10",
"@babel/node": "^7.12.10",
"@babel/plugin-proposal-object-rest-spread": "^7.12.1",
"@babel/preset-env": "^7.12.11",
"nodemon": "^2.0.7"
我尝试在没有 nodemon 的情况下使用常规 node 命令对其进行测试,它按预期运行
$ npm run start
> dev_forum@1.0.0 start
> babel-node index.js
Server is up...
我的文件夹结构在下面
enter image description here
index.js 的内容是
const express = require("express");
const app = express();
app.listen(() =>
console.log("Server is up...")
)
我也尝试删除我的 node_modules 和 package-lock.json 文件并重新安装,但仍然崩溃..
(*这是我的第一个问题;))
【问题讨论】:
【参考方案1】:
我遇到了同样的问题并以这种方式解决了:
"scripts":
"start": "babel-node src/index.js",
"dev" : "nodemon --exec npm start"
在终端运行
npm run dev
【讨论】:
【参考方案2】:
以上步骤都不适合我。我改用纱线。
删除你的 package-lock.json
然后做:纱线
这将添加依赖项,然后您可以运行它,很可能使用 yarn run dev
(当然这取决于你在 package.json 上的脚本)。
【讨论】:
【参考方案3】:
删除您的 node_modules 并按照以下步骤操作:
npm install --save-dev @babel/core @babel/cli @babel/preset-env @babel/node
然后,检查这些文件是否存在:
node_modules/.bin/babel-node
node_modules/.bin/babel-node.cmd - 仅限 Windows
node_modules/@babel/node/bin/babel-node.js
如果一切看起来不错,添加到 package.json:
"start": "nodemon --exec babel-node index.js",
【讨论】:
我已经这样做了,但错误仍然存在...错误:需要 Babel "^7.0.0-0",但加载了 "6.26.3".. 所以我通过还原解决了它回到 babel 版本 6 ... "devDependencies": "babel-cli": "^6.26.0", "babel-core": "^6.26.3", "babel-node": "^0.0.1 -security”,“babel-preset-env”:“^1.7.0”,“nodemon”:“^2.0.7”
还是同样的问题?尝试将您的 nide 版本恢复为 14 或尝试安装 nvm 并检查问题是否不是特定于节点版本。
以前我使用的是节点 v15,但使用的是节点 14.15.4,但我仍然遇到同样的错误。但我发现问题出在我的 babel 插件和预设上。我使用的是 @ babel/preset-env 和 @babel/plugin-proposal-object-rest-spread.. 我分别测试了每个,但仍然得到相同的错误。我通过使用以前版本的 babel-preset-env 和 babel-plugin-transform-object-rest-spread 包解决了这个问题。这些适用于 babel v6 和 v7
太好了!是的,看起来版本问题只是因为安装似乎很好,但很高兴听到你解决了它。
当我使用“npm start”时它对我不起作用,但当我使用“yarn start”时它很好以上是关于用babel和nodemon搭建一个功能齐全的nodejs开发环境的主要内容,如果未能解决你的问题,请参考以下文章
[NODEMON]- babel-node 未被识别为内部或外部命令
nodemon添加babel支持
nodemon,babel-node:如何设置环境变量?
错误:使用带有 babel 7 的 nodemon 时监听 EADDRINUSE
TypeScript 服务端热更新
TypeScript 服务端热更新