【问题标题】:How to remove comments from transpiled code using babel-cli如何使用 babel-cli 从编译后的代码中删除注释
【发布时间】:2016-07-05 19:02:34
【问题描述】:

我一直在寻找一些.babelrc 选项来从转译代码中删除 cmets,但我没有任何运气。我试过这个:

{
  "comments": false
}

还有

{
  "options": {
    "comments": false
  }
}

两者都不起作用。我没有想法,也无法在任何地方找到任何像样的文档。

【问题讨论】:

    标签: javascript babeljs


    【解决方案1】:

    始终建议使用.babelrc

    {
      comments: false
    }
    

    如果使用babel-cli,您可以使用--no-comments 选项来实现相同的行为。

    babel-cli的最新版本包括tests that check for this behaviour to be implemented correctly


    编辑

    babel CLI 忽略 .babelrc 中的 cmets 看起来确实存在问题,解决方法是使用 --no-comments 选项。

    在你的package.json

    "build": "babel ./index.js --out-dir ./dist/index.js --no-comments"
    

    了解 babel-cli 的所有选项

    ./node_modules/.bin/babel -h
    

    原创

    你从哪里运行 babel?咕咕咕?

    检查 .babelrc 文件是否位于已转译文件的同一目录或父目录中

    来自babeljs.io

    Babel 会在文件的当前目录中寻找 .babelrc 被转译。如果一个不存在,它将向上传播 目录树,直到找到 .babelrc 或 package.json 带有 "babel": {} 散列。

    我有一个具有这种结构的项目:

    • 分布
      • index.js
    • .babelrc
    • index.js
    • gulpfile.js
    • node_modules
      • ...

    gulpfile.js中的相关任务

    gulp.task('babel', () => {
        return gulp.src('index.js')
            .pipe(babel({
                presets: ['es2015']
            }))
            .pipe(gulp.dest('./dist/'));
    });
    

    .babelrc的内容

    {
        "comments": false
    }
    

    已成功移除 cmets。

    例如,还要检查您是否没有在 gulpfile 中将 comments 选项设置为 true。

    【讨论】:

    • 我正在从我自己的 npm run build 脚本运行 babel,它只是在执行 babel ./src --out-dir ./lib。我尝试将"comments": false 放入.babelrc,但什么也没发生。
    • 那个目录结构中的 .babelrc 文件在哪里?
    • 在项目根目录。
    • .babelrc 肯定可以正常工作,因为它可以很好地加载预设/插件。
    • 好的,让我尝试复制它。
    猜你喜欢
    • 2012-06-20
    • 2020-02-07
    • 2014-01-21
    • 1970-01-01
    • 2016-07-27
    • 2011-05-23
    • 2015-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多