javascript – 如何使用Babel进行CLI程序?

前端之家收集整理的这篇文章主要介绍了javascript – 如何使用Babel进行CLI程序?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用Babel在节点上编写一些CLI程序.我见过问题 How do I use babel in a node CLI program?,那里有 loganfsmyth说:

Ideally you’d precompile before distributing your package.

好的,现在我正在使用:

"scripts": {
    "transpile": "babel cli.js --out-file cli.es5.js","prepublish": "npm run transpile",}

但是,当Babel添加’use strict’时,我遇到了问题;排在#!/usr/bin/env节点标题后面.例如,如果我有cli.js:

#!/usr/bin/env node

import pkg from './package'

console.log(pkg.version);

我会得到这个:

#!/usr/bin/env node'use strict';

var _package = require('./package');

… ……

这不起作用.当我尝试运行它时,我总是得到:

/usr/bin/env: node'use strict';: This file or directory does'nt exist

我怎样才能解决这个问题?

解决方法

来自@DanPrince的解决方案是完全可以接受的,但还有另一种选择

cli.js

保留此文件es5

#!/usr/bin/env node
require("./run.es5.js");

run.js

// Put the contents of your existing cli.js file here,// but this time *without* the shebang
// ...

将脚本更新为

"scripts": {
    "transpile": "babel run.js > run.es5.js",}

这里的想法是cli.js垫片不需要传送,所以你可以将你的shebang保存在该文件中.

cli.js将只加载run.es5.js,这是run.js的babel-transiled版本.

猜你在找的JavaScript相关文章