静态类属性不适用于Babel

问题描述 投票:4回答:3

我正在使用JSDOC及其所有受支持的npm插件来创建漂亮的文档。当jsdoc运行并解析JSX文件时,越来越麻烦,它总是在= sign

附近抛出如下错误
SyntaxError: unknown: Unexpected token
export default class SaveDesign extends Component {
 static displayName = 'SaveDesign';
}

conf.json文件

{
  "source": {
    "include": [ "src/app/test.js", "src/app/components/Modals/Template/SaveDesign.jsx"],
    "exclude": [ "src/fonts", "src/icons", "src/less", "src/vector-icon" ],
    "includePattern": ".+\\.js(doc|x)?$",
    "excludePattern": "(^|\\/|\\\\)_"
  },
  "plugins": ["node_modules/jsdoc-babel"],
  "babel": {
    "extensions": ["js", "es6", "jsx"],
    "presets": ["es2015"]
  },
  "jsx": {
    "extensions": ["js", "jsx"]
  }
}
javascript reactjs ecmascript-6 babeljs jsdoc3
3个回答
9
投票

Class属性不属于ES2015规范,因此也不属于ES2015 Babel预设。 The proposal to add class properties to the language当前处于标准化过程的第3阶段,因此您需要第3阶段预设。

https://babeljs.io/docs/plugins/preset-stage-3/

或者,您可以单独安装类属性插件:

https://babeljs.io/docs/en/babel-plugin-proposal-class-properties


2
投票

作为stage-2,stage-3或其他任何阶段预设,已在babel 7或更高版本中删除,因此您必须单独添加插件。请使用“ require()”导入插件,否则它将无法正常工作。这是.bablerc文件-

module.exports = {
  plugins: [
    [require("@babel/plugin-proposal-class-properties"), { loose: false }]
  ],
  presets: ["@babel/preset-env", "@babel/preset-react"]
}; 

0
投票

@@ Joe,谢谢,您提到的插件将有助于解决问题。就我而言,我解决问题的方法是确保将所有.babelrc依赖项都复制到jsdoc babel属性中,而我却错过了这块代码,这给了我所有的错误。

© www.soinside.com 2019 - 2024. All rights reserved.