2

通过 grunt 使用 babel-cli 转译 javascript 代码。在编译包含类定义的第一个 javascript 文件时看到错误“path.inShadow 不是函数”。

我相信我已经完全更新了节点和所有软件包(我是节点生态系统的新手,所以我可能在这里遗漏了一些东西)。

这是显示我的开发依赖项的片段。

“开发依赖”:{
    "@babel/core": "^7.2.2",
    "babel-cli": "^6.26.0",
    "babel-core": "^6.26.3",
    "babel-preset-env": "^1.7.0",
    “咕噜”:“^1.0.3”,
    "grunt-babel": "^8.0.0",
    "grunt-contrib-clean": "^2.0.0",
    "grunt-contrib-compress": "^1.4.3",
    "grunt-contrib-concat": "^1.0.1",
    "grunt-contrib-copy": "^1.0.0",
    "grunt-contrib-jasmine": "^2.0.3",
    "grunt-contrib-jshint": "^2.0.0",
    "grunt-contrib-rename": "^0.2.0",
    "grunt-contrib-uglify": "^4.0.0",
    “grunt-contrib-watch”:“^1.1.0”
  }

我相信我的安装是最新的,因为:

  • npm install 什么都不做
  • npm outdated 什么也没显示
  • npm prune 什么都不做

节点版本为 10.15.0。

在 Mac 上,以防万一

编译中止并显示错误消息:

警告:path.inShadow 不是函数使用 --force 继续。

当时它似乎正在编译一个包含类定义的javascript文件,前面成功转换的文件都没有包含这样的定义。

4

1 回答 1

3

遵循@RobC 的建议。这是答案:

  1. 安装@babel/plugin-transform-classes

  2. 并添加"plugins": [ "@babel/plugin-transform-classes" ].babelrc

问题解决了。

于 2019-01-22T19:47:10.850 回答