使用grunt / babel编译代码时,如何修复“ path.inShadow不是函数”

时间:2019-01-21 22:47:08

标签: node.js gruntjs babel babel-cli

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

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

以下是显示我的开发依赖项的代码段。

"devDependencies": {
    "@babel/core": "^7.2.2",
    "babel-cli": "^6.26.0",
    "babel-core": "^6.26.3",
    "babel-preset-env": "^1.7.0",
    "grunt": "^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什么也没显示
  • npm修剪不起作用

节点版本为10.15.0。

在Mac上(如果相关)

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

  

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

当时似乎正在编译一个包含类定义的javascript文件,之前成功编译的文件都不包含此类定义。

1 个答案:

答案 0 :(得分:1)

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

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

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

问题解决了。