gpt4 book ai didi

javascript - 如何使用 Babel 作为 CLI 程序?

转载 作者:数据小太阳 更新时间:2023-10-29 05:14:59 26 4
gpt4 key购买 nike

我正在尝试使用 Babel 在 Node 上编写一些 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 在 #!/usr/bin/env node header 后面添加 'use strict'; 行时,我遇到了这个问题。例如,如果我有 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",
"prepublish": "npm run transpile",
}

这里的想法是 cli.js shim 不需要被转译,因此您可以将 shebang 保存在该文件中。

cli.js 只会加载 run.es5.js,它是 run.js 的 babel 转译版本。

关于javascript - 如何使用 Babel 作为 CLI 程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33451784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com