【问题标题】:Babel Transpiler failing to run with NodemonBabel Transpiler 无法与 Nodemon 一起运行
【发布时间】:2019-03-11 11:48:29
【问题描述】:

问题:

无法在 Nodemon 中使用 Babel Transpiler

详情:

在 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"
}

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

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

我认为这是由 6.26 的 babel-cli 依赖引起的,但是当我删除它时,它会发出声音:

[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

【问题讨论】:

    标签: node.js npm babeljs nodemon


    【解决方案1】:

    使用 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"
    }
    

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

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

    感谢 Babel Slack 频道的回答!

    【讨论】:

    • 在搜索了多个 github 问题和线程后,这是唯一有效的解决方案。就我而言,粘贴后,我不得不删除 package-lock.json 文件和节点模块文件夹并再次运行 npm install 以删除以前节点模块文件的所有痕迹。
    • 从 Babel 7.4.0 开始,@babel/polyfill 包已被弃用,取而代之的是通过babeljs.io/docs/en/babel-polyfill 直接包含core-js/stable
    猜你喜欢
    • 2013-04-28
    • 2015-08-04
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    • 1970-01-01
    • 2019-10-23
    • 2013-06-28
    • 2013-07-11
    相关资源
    最近更新 更多