通过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" }
我认为我的安装是最新的,因为:
节点版本为10.15.0。
在Mac上(如果相关)
翻译中止并显示错误消息:
警告:path.inShadow不是函数使用--force继续。
当时似乎正在编译一个包含类定义的javascript文件,之前成功编译的文件都不包含此类定义。
答案 0 :(得分:1)
遵循@RobC的建议。答案是这样:
安装@babel/plugin-transform-classes
并将"plugins": [ "@babel/plugin-transform-classes" ]
添加到 .babelrc 。
问题解决了。