javascript - 无法让 browserify 使用 babel-plugin-transform-class-properties

标签 javascript browserify babeljs laravel-elixir

我正在尝试使用 MobX在我的项目中,我正在尝试使用类属性。但是,当我运行 browserify (使用 Laravel's Elixir )时。我收到错误缺少类属性转换。解析文件时。我是否缺少一些让类属性与 browserify 一起使用的功能?

Browserify Failed!: /Users/.../resources/assets/js/pages/Show/CampaignStore.js: Missing class properties transform. while parsing file: /Users/.../resources/assets/js/pages/Show/CampaignStore.js
 Missing class properties transform.
  2 |
  3 | class CampaignStore {
> 4 |   id = Math.random();
    |   ^
  5 |   @observable title = '';
  6 |   @observable messages = [];
  7 |

我的 .babelrc 文件:

{
  "presets": [
    "es2015",
    "react",
    "stage-0"
  ],
  "plugins": ["transform-decorators-legacy", "transform-class-properties"]
}

类(class)

import { observable, computed } from 'mobx';

class CampaignStore {
  id = Math.random();
  @observable title = '';
  @observable messages = [];

  // ...
}

gulpfile.js

require('dotenv').config();
var elixir = require('laravel-elixir');

var HOST = process.env.SERVER || 'http://localhost';

elixir.config.js.browserify.transformers.push({
    name: 'babelify',
    options: {
        presets: ["es2015", "react", "stage-1"],
        plugins: ["transform-class-properties"]
    }
});

elixir(function(mix) {
    mix.browserify('pages/Show.js', 'public/js/bundles/show.js');

    mix.sass('clean.scss');

    mix.browserSync({
        proxy: HOST
    });
});

最佳答案

您应该完全覆盖 babelify 转换器:

elixir.config.js.browserify.transformers
  .find(transformer => transformer.name === 'babelify')
  .options = {
    presets: ['es2015', 'react', 'stage-1'],
    plugins: ['transform-class-properties'],
  };

或者只使用相同的 babel 配置文件:

elixir.config.js.browserify.transformers
  .find(transformer => transformer.name === 'babelify')
  .options = require('./package.json').babel;

关于javascript - 无法让 browserify 使用 babel-plugin-transform-class-properties,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37145051/

相关文章:

javascript - 对我的 React.js 模块使用 gulp-browserify 我在浏览器中得到 'require is not defined'

javascript - 调试时在 Vue-CLI 应用程序中禁用转译为 ES5

node.js - 即使在 Webstorm 2018.3 中进行 Babel 配置后,Spread Operator 也会抛出 SyntaxError

javascript - ES7 异步函数和 promise 之间的技术区别?

javascript - 如何从维基百科的信息框获取数据?

javascript - 虽然 True 循环会阻止页面加载

javascript - 使用 Javascript SDK 显示 Facebook 墙帖

javascript - 由于 CORS 问题,通过浏览器的 JS-IPFS http 客户端失败

javascript - jQuery 延迟然后和始终之间的区别

javascript - 使用 IntelliJ 和源映射启用 JavaScript 调试