per*_*mon 8 javascript babeljs nuxt.js
Nuxt 2.12.2 在尝试使用object?.key.
Module parse failed: Unexpected token (311:25) friendly-errors 10:36:40
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file
Run Code Online (Sandbox Code Playgroud)
所以这是因为babel在 Nuxt 中配置为支持IE9我的项目中不需要的旧浏览器。
在另一个项目中,我只是把 .bablelrc
{
"presets": [
["env", {
"targets": {
"browsers": ["last 2 Chrome versions"]
}
}]
]
}
Run Code Online (Sandbox Code Playgroud)
但在 Nuxt 中.bablelrc被禁用。那么我怎样才能optional chaining operator工作呢?
通过告诉 Nuxt 只支持现代浏览器。或添加@babel/plugin-proposal-optional-chaining
zhe*_* li 17
正如Nuxtjs Doc描述的那样,.babelrc默认情况下被忽略。
我通过以下配置解决了这个问题。
// in nuxt.config.js
{
// ...
build: {
// ....
babel: {
plugins: [
'@babel/plugin-proposal-optional-chaining'
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
当然,在此之前,您应该安装 @babel/plugin-proposal-optional-chaining
npm i -D @babel/plugin-proposal-optional-chaining
Run Code Online (Sandbox Code Playgroud)
我希望它能帮助你。
它用于Babel启用Optional Chaining(?.)和Nullish Coalescing(??)许多新的 ES 语法Vue.js SFC。

npm install vue-template-babel-compiler --save-dev
Run Code Online (Sandbox Code Playgroud)
// nuxt.config.js
export default {
// Build Configuration: https://go.nuxtjs.dev/config-build
build: {
loaders: {
vue: {
compiler: require('vue-template-babel-compiler')
}
},
},
// ...
}
Run Code Online (Sandbox Code Playgroud)
支持Vue-CLI, Nuxt.js, Webpack,任何环境使用vue-loader v15+。