Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Babeljs 巴贝尔:使用stage-x预设插件的子集?_Babeljs - Fatal编程技术网

Babeljs 巴贝尔:使用stage-x预设插件的子集?

Babeljs 巴贝尔:使用stage-x预设插件的子集?,babeljs,Babeljs,如何使用stage-x“预设”中的两个特定巴贝尔插件,而不必使用整个预设 具体地说,我想在我的ES6类中使用和,这两种类型目前都是为ES7和部分预置而提出的。预置只是一组较小的插件,因此您可以使用该选项拉入所需的转换: .LRC(或配置) 将为您提供所有ES2015+类属性+装饰器预设只是一组较小的插件,因此您可以使用该选项拉入所需的转换: .LRC(或配置) 将为您提供所有ES2015+类属性+装饰器@RGraham的回答很有帮助--还想分享更多细节 我使用的是gulp,所以首先我必须从gul

如何使用stage-x“预设”中的两个特定巴贝尔插件,而不必使用整个预设


具体地说,我想在我的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);
  }