在我的项目中我配置了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'
任何人都可以解释如何解决此错误?
transform-optional-chaining
是一个插件(不是预设)。尝试将您的babel配置更改为:
{
"presets": ["react", "es2015","stage-1"],
"plugins": ["transform-runtime", "transform-optional-chaining"]
}
似乎更大的问题是你有各种版本的babel,所有这些都已经过时了。 “transform-optional-chaining”已包含在babel 7的“stage-1”预设中,但是was not back-ported to babel 6。
然而,更令人困惑的是:babel has done away with stage-presets(和Babel 6中的es201x预设被弃用)。因此,在最新版本的babel中,您不仅需要列出“transform-optional-chaining”,还需要列出您正在使用的所有其他插件。
我认为这里唯一真正的选择(如果你想使用最新的插件)是升级到Babel 7的最新版本 - 其中包括很多变化,但无论如何你最终都必须这样做。你可以找到一个migration guide here。
我想你可以在删除阶段预设之前找到一个alpha版本但是这只是给自己更多的工作以便将来,并且无论如何都可能仍然会有变化。