Babel Transpiler 无法与 Nodemon 一起运行

4 node.js npm nodemon babeljs

问题:

无法将 Babel Transpiler 与 Nodemon 一起使用

细节:

在 package.json 我有:

"scripts": {
   "start": "nodemon --exec babel-node --presets=es2015 -- src/app.js"
},


"dependencies": {
   "nodemon": "^1.18.4"
},
"devDependencies": {
  "@babel/cli": "^7.1.2",
  "@babel/core": "^7.1.2",
  "@babel/preset-env": "^7.1.0",
  "babel-cli": "^6.26.0",
  "babel-preset-env": "^1.7.0"
}
Run Code Online (Sandbox Code Playgroud)

当我运行时npm start我的理解是 nodemon 应该启动保存并运行 babel 编译器;但是,我在终端中得到以下信息。

错误:需要 Babel "^7.0.0-0",但加载了 "6.26.3"。如果你确定你有一个兼容版本的@babel/core,很可能是你的构建过程中加载了错误的版本。检查此错误的堆栈跟踪以查找未提及“@babel/core”或“babel-core”的第一个条目,以查看调用 Babel 的内容。

我认为这是由babel-cli6.26的依赖引起的,但是当我删除它时它会发出尖叫声:

[nodemon] failed to start process, "babel-node" exec not found

搜索好的 ol' google 机器,我看到其他一些设置更复杂的人,他们的解决方案似乎飞过我的头顶。

娱乐步骤:

  1. 运行npm init -y&npm i nodemon

  2. 按照此处的说明进行操作:https ://babeljs.io/setup#installation (nodemon) selected

  3. 运行时npm install @babel/core --save-dev我被警告说未安装核心。

  4. npm start

小智 8

使用 nodemon 运行 Babel 时,您需要包含这些包。

"devDependencies": {
  "@babel/cli": "^7.1.2",
  "@babel/core": "^7.1.2",
  "@babel/polyfill": "^7.0.0",
  "@babel/preset-env": "^7.1.0",
  "@babel/node": "^7.0.0",
  "nodemon": "^1.18.4"
}
Run Code Online (Sandbox Code Playgroud)

然后将您的 npm 运行脚本调整为:

"start": "nodemon app/index.js --exec babel-node app/index.js"

感谢 Babel Slack 频道的回答!

  • 在搜索了多个 github 问题和线程后,这是唯一有效的解决方案。就我而言,粘贴此内容后,我必须删除 package-lock.json 文件和节点模块文件夹,并再次运行 npm install 以删除以前节点模块文件的所有痕迹。 (2认同)