如何使用babel-cli从转换后的代码中删除注释

ffx*_*sam 18 javascript babeljs

我一直在寻找一些.babelrc从转换代码中删除评论的选项,但我没有运气.我试过这个:

{
  "comments": false
}
Run Code Online (Sandbox Code Playgroud)

以及

{
  "options": {
    "comments": false
  }
}
Run Code Online (Sandbox Code Playgroud)

并且都不起作用.我没有想法,我无法在任何地方找到任何体面的文档.

Mar*_*olo 32

使用.babelrc总是建议:

{
  comments: false
}
Run Code Online (Sandbox Code Playgroud)

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

babel-cli包含测试的最新版本检查是否正确实现了此行为.


编辑

看起来像babel CLI忽略注释的问题.babelrc,解决方法是使用该--no-comments选项.

在你的 package.json

"build": "babel ./index.js --out-dir ./dist/index.js --no-comments"
Run Code Online (Sandbox Code Playgroud)

了解babel-cli的所有选项

./node_modules/.bin/babel -h
Run Code Online (Sandbox Code Playgroud)

原版的

你在哪里经营巴贝尔?吞掉?

检查您是否将.babelrc文件放在文件beign的相同或父目录中

来自babeljs.io:

Babel将在正在编译的文件的当前目录中查找.babelrc.如果一个不存在,它将沿目录树向上移动,直到找到.babelrc或带有"babel":{}哈希的package.json.

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

  • DIST
    • 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/'));
});
Run Code Online (Sandbox Code Playgroud)

的内容 .babelrc

{
    "comments": false
}
Run Code Online (Sandbox Code Playgroud)

评论正在成功删除.

例如,还要检查commentsgulpfile中是否未将该选项设置为true.