在我的项目中,我配置babel:
{
"presets": ["react", "es2015","stage-1", "transform-optional-chaining"],
"plugins": ["transform-runtime"]
}
这是我在devDependencies
中的package.json
:
"devDependencies": {
"babel-cli": "^7.0.0-alpha.19",
"babel-loader": "^7.1.5",
"babel-plugin-module-resolver": "^3.1.1",
"babel-plugin-transform-optional-chaining": "^7.0.0-beta.3",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-stage-1": "^6.24.1",
"copy-webpack-plugin": "^4.5.2",
"css-loader": "^1.0.0",
"file-loader": "^1.1.11",
"html-webpack-plugin": "^3.2.0",
"prettier": "^1.14.2",
"react-hot-loader": "^4.3.4",
"style-loader": "^0.22.1",
"url-loader": "^1.1.1",
"webpack": "^4.16.5",
"webpack-cli": "^3.1.0",
"webpack-dev-server": "^3.1.5"
}
运行项目时出现此错误:
找不到模块“ babel-preset-transform-optional-chaining”
任何人都可以解释如何解决此错误吗?
答案 0 :(得分:3)
transform-optional-chaining
是一个插件(不是预设)。尝试将babel配置更改为:
{
"presets": ["react", "es2015","stage-1"],
"plugins": ["transform-runtime", "transform-optional-chaining"]
}
答案 1 :(得分:0)
似乎更大的问题是您混用了Babel的所有版本,所有这些版本都已过时。对于babel 7,但was not back-ported to babel 6,“ stage-1”预设中已经包含“ transform-optional-chaining”。
但是,为了使事情更混乱,请执行以下操作:babel has done away with stage-presets(并且Babel 6中已弃用es201x预设)。因此,在最新版本的babel中,您不仅 do 需要列出“ transform-optional-chaining”,而且还列出您正在使用的所有其他插件。
我认为这里唯一的真实选择(如果您想使用最新的插件)是升级到Babel 7的最新版本-包括很多更改,但最终还是必须这样做。您可以找到一个migration guide here。
我想您可以在删除阶段预置之前找到一个Alpha版本,但这只是为您自己将来的工作,仍然可能仍然需要进行一些更改。