npx nodemon --exec babel-node 时babel-node不存在

npx nodemon --exec babel-node 时babel-node不存在

使用这个命令时说babel-node不是内部文件或外部文件

http://img1.sycdn.imooc.com//climg/5f0529440948bee605100222.jpg

但是使用npx babel-node src/index.js时是正常启动的

这是什么问题啊

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
黄焖没有鸡 2020-08-11 15:38:08

其实`nodemon --exec babel-node src/index.js `并没有用到webpack打包,这节课的webpack配置是为以后课程做准备的。下面说说我的心得:
nodemon 默认采用类似于webpack 的watch功能来自动重启服务,内部其实还是调用了node命令。
 --exec这个参数代表使用别的命令来代替node执行,即babel-node命令。这个命令先使用babel编译一次JS代码,再使用node执行,所以babel-node干了两件事情。
说一说那个错误:执行`nodemon --exec babel-node src/index.js `后报错:`babel-node`不是内部或外部命令,也不是可运行的程序。
这句命令放在package.json没啥毛病,但是在控制台执行就会报错,下面我讲讲我的理解:
课程中老师的babel-node是局部安装的,所以就算你直接输入`babel-node src/index.js `它还是会报错,在命令行想要执行局部安装的包,需要使用npx命令,所以可以试试这样:`nodemon --exec npx babel-node src/index.js `,意思就是在nodemon的监视下,调用局部的babel-node命令执行 src/index.js。
老师在视频中为什么没有报错呢?我猜老师是把`babel-node`这个命令安装在了全局,所以我们看到没有啥问题。
总结:package.json中的命令是会自动找相关的依赖包的,但是你在控制台需要借助npx。

提问者 吳偉彬 2020-07-08 10:10:05

配置在package.json中的启动命令时,又不报babel-node不是内部或外部文件的问题了

  • Brian #1
    在package.json中启动的命令,默认会去找当前工作区的node_modules,如果已经安装了babel-node,即不会报错误。
    2020-07-08 17:10:36
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师