美文网首页
批量增加 proposal 语法支持

批量增加 proposal 语法支持

作者: wfatec | 来源:发表于2019-08-06 15:22 被阅读0次

    在某次新项目构建中需要增加对spread语法的支持,由于babel 7.0版本废弃了对stage-x的支持,因此我们无法直接通过@babel/preset-stage-0来直接配置proposal语法支持,但官方依然可以让我们通过手动增加相应的plugin来进行适配。例如这里的spread语法,就可以通过@babel/plugin-proposal-object-rest-spread来进行支持,具体安装可以见官方文档

    这里需要指出的是,官方给出了一个好用的工具---babel-upgrade,来帮助我们批量的增加proposl语法的支持,免去了手动一次导入的繁琐,其本意是为了让之前已经使用了stage-x的用户能够快速迁移到新版本的babel中来。具体用法如下:

    # npx lets you run babel-upgrade without installing it locally
    npx babel-upgrade --write
    
    # or install globally and run
    npm install babel-upgrade -g
    babel-upgrade --write
    

    当然,在使用之前,记得在devDependencies中先加入@babel/preset-stage-0,这样所有stage-0以上的语法相关的插件都会被批量安装进来,效果如下:

    "devDependencies": {
        "@babel/core": "^7.0.0",
        "@babel/plugin-proposal-class-properties": "^7.0.0",
        "@babel/plugin-proposal-decorators": "^7.0.0",
        "@babel/plugin-proposal-do-expressions": "^7.0.0",
        "@babel/plugin-proposal-export-default-from": "^7.0.0",
        "@babel/plugin-proposal-export-namespace-from": "^7.0.0",
        "@babel/plugin-proposal-function-bind": "^7.0.0",
        "@babel/plugin-proposal-function-sent": "^7.0.0",
        "@babel/plugin-proposal-json-strings": "^7.0.0",
        "@babel/plugin-proposal-logical-assignment-operators": "^7.0.0",
        "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
        "@babel/plugin-proposal-numeric-separator": "^7.0.0",
        "@babel/plugin-proposal-object-rest-spread": "^7.4.4",
        "@babel/plugin-proposal-optional-chaining": "^7.0.0",
        "@babel/plugin-proposal-pipeline-operator": "^7.0.0",
        "@babel/plugin-proposal-throw-expressions": "^7.0.0",
        "@babel/plugin-syntax-dynamic-import": "^7.0.0",
        "@babel/plugin-syntax-import-meta": "^7.0.0",
      },
    

    大功告成!接下来只需要将合适的plugin.babelrc中进行配置 即可,例如支持spread语法:

    "plugins":[
        // 支持`spread`语法
        "@babel/plugin-proposal-object-rest-spread"
    ]
    

    相关文章

      网友评论

          本文标题:批量增加 proposal 语法支持

          本文链接:https://www.haomeiwen.com/subject/fyfwdctx.html