【问题标题】:babel transform the es6 template string only in single quote not double quotebabel 仅将 es6 模板字符串转换为单引号而不是双引号
【发布时间】:2016-04-06 03:35:09
【问题描述】:

    我的脚本代码遵循 jshint 样式,它只允许单引号中的 javascript 字符串。但是当我使用 babel 翻译我的 ES6 模板文件时,它有时会生成带有双引号的字符串,我该如何禁止呢?

例如:模板生成如下代码:
throw new TypeError("Cannot call a class as a function");
我希望生成:
throw new TypeError('Cannot call a class as a function');

【问题讨论】:

  • 不要在转译输出上运行 jshint。
  • @user663031 如果您在源代码上运行代码模块怎么办?

标签: ecmascript-6 babeljs jshint


【解决方案1】:

Babel-generator 包接受quotes 选项。现在好像坏了:https://github.com/babel/babel/pull/3367 但是,在这将被修复之后,您可以手动使用 babel-generator 根据您的代码样式生成代码:

var core = require('babel-core');
var generate = require('babel-generator');

var ast = core.transformFileSync('test.js', {
    // here should be your babel configuration
    presets: ['es2015']
}).ast;
console.log(generate.default(ast, {quotes: 'double'}).code);

您不能使用 CLI 执行此操作,因为它不接受此选项作为参数。

附:在生成的代码上使用 jshint 或其他代码样式检查器并不好。生成的代码不是供人们阅读的,只有 ES6 源代码应该显示给开发人员并允许编辑。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-02
    • 2011-07-08
    相关资源
    最近更新 更多