babel只在单引号中转换es6模板字符串而不是双引号

时间:2016-04-06 03:35:09

标签: ecmascript-6 babeljs jshint

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

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

1 个答案:

答案 0 :(得分: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执行此操作,因为它不接受此选项作为参数。

P.S。在生成的代码上使用jshint或其他代码样式检查器并不好。生成的代码不打算被人阅读,只有开发人员才能显示ES6源并允许编辑。