Babeljs 巴贝尔:使用stage-x预设插件的子集?
如何使用stage-x“预设”中的两个特定巴贝尔插件,而不必使用整个预设Babeljs 巴贝尔:使用stage-x预设插件的子集?,babeljs,Babeljs,如何使用stage-x“预设”中的两个特定巴贝尔插件,而不必使用整个预设 具体地说,我想在我的ES6类中使用和,这两种类型目前都是为ES7和部分预置而提出的。预置只是一组较小的插件,因此您可以使用该选项拉入所需的转换: .LRC(或配置) 将为您提供所有ES2015+类属性+装饰器预设只是一组较小的插件,因此您可以使用该选项拉入所需的转换: .LRC(或配置) 将为您提供所有ES2015+类属性+装饰器@RGraham的回答很有帮助--还想分享更多细节 我使用的是gulp,所以首先我必须从gul
具体地说,我想在我的ES6类中使用和,这两种类型目前都是为ES7和部分预置而提出的。
预置
只是一组较小的插件
,因此您可以使用该选项拉入所需的转换:
.LRC(或配置)
将为您提供所有ES2015+类属性+装饰器
预设
只是一组较小的插件
,因此您可以使用该选项拉入所需的转换:
.LRC(或配置)
将为您提供所有ES2015+类属性+装饰器@RGraham的回答很有帮助--还想分享更多细节 我使用的是gulp,所以首先我必须从gulp babel 5.x升级到6.x:
npm安装--保存开发巴贝尔/吞咽巴贝尔
然后我需要安装ES2015预置和我想要使用的两个插件(+因为我使用的是react JS,所以需要安装react预置):
最后,我将以下配置传递给Babel(您也可以在.babelrc
文件中指定):
您的JavaScript linter会抱怨ES7语法。描述了解决方案:修改lintjs以使用Babel作为JavaScript解析器。然后在.eslintrc
文件中设置“parser”:“babel eslint”
npm install --save-dev babel-eslint
最后,对于任何其他ReactJS人员,请确保修改组件的构造函数以包含道具和上下文参数,否则可能会出现运行时错误,如TypeError:cannotread属性“xxx”of undefined
。下面是一个例子:
/**
* ES6 constructor method (takes the place of the old React componentWillMount() method).
*
* @param {Object} props See https://facebook.github.io/react/docs/reusable-components.html
* @param {Object} context See https://facebook.github.io/react/docs/context.html
*/
constructor(props, context) {
super(props, context);
log.debug(`Creating ${this.constructor.name} instance`, props, context);
}
@RGraham的回答很有帮助--还想分享更多细节 我使用的是gulp,所以首先我必须从gulp babel 5.x升级到6.x:
npm安装--保存开发巴贝尔/吞咽巴贝尔
然后我需要安装ES2015预置和我想要使用的两个插件(+因为我使用的是react JS,所以需要安装react预置):
最后,我将以下配置传递给Babel(您也可以在.babelrc
文件中指定):
您的JavaScript linter会抱怨ES7语法。描述了解决方案:修改lintjs以使用Babel作为JavaScript解析器。然后在.eslintrc
文件中设置“parser”:“babel eslint”
npm install --save-dev babel-eslint
最后,对于任何其他ReactJS人员,请确保修改组件的构造函数以包含道具和上下文参数,否则可能会出现运行时错误,如TypeError:cannotread属性“xxx”of undefined
。下面是一个例子:
/**
* ES6 constructor method (takes the place of the old React componentWillMount() method).
*
* @param {Object} props See https://facebook.github.io/react/docs/reusable-components.html
* @param {Object} context See https://facebook.github.io/react/docs/context.html
*/
constructor(props, context) {
super(props, context);
log.debug(`Creating ${this.constructor.name} instance`, props, context);
}
最好列出
transform-
插件,而不是语法-
插件。您的建议将使它们进行解析,但不会进行转换。有人能告诉我转换类属性的作用吗?我不想为此提出一个新问题,因为我认为这不值得一个大的答案——但NPM和github页面没有明确说明。@grateen.Scripting建议如下:最好列出transform-
插件,而不是syntax-
插件。您的建议将使它们进行解析,但不会进行转换。有人能告诉我转换类属性的作用吗?我不想就此提出新的问题,因为我认为这不值得一个大的答案——但NPM和github页面没有明确说明。@grateen.Scripting建议如下:请注意,如果您需要使用Babel 6的装饰器,您可能需要Babel plugin transform decorators legacy
,不是babel插件转换装饰者你应该发布你的更新作为答案,并将其标记为已接受的答案。这比我现有的回答要详细得多谢谢@RGraham的反馈——完成了!请注意,如果您需要使用Babel 6的装饰器,您可能需要的是Babel插件转换装饰器旧式
,而不是Babel插件转换装饰器
,您应该将更新作为答案发布,并将其标记为已接受的答案。这比我现有的回答要详细得多谢谢@RGraham的反馈——完成了!
/**
* ES6 constructor method (takes the place of the old React componentWillMount() method).
*
* @param {Object} props See https://facebook.github.io/react/docs/reusable-components.html
* @param {Object} context See https://facebook.github.io/react/docs/context.html
*/
constructor(props, context) {
super(props, context);
log.debug(`Creating ${this.constructor.name} instance`, props, context);
}