babel-node hashbang 有用吗?

Does a babel-node hashbang work?

我想制作一个使用 ES6 的全局可安装 NPM 包。为此,我想我会用 #!/usr/bin/env babel-node 设置我的 bin/scriptname(这也需要最终用户安装 babel)。这行得通吗,或者是否有其他更有效的方法(如果可能)?

看看coffee-script等其他编译项目是怎么做的。通常你会有一个可执行的 bin 文件,它只需要一个编译的 lib 文件。

像这样:

project/
  bin/
    project
  lib/
    project.js
  src/
    project.babel

你的 /bin/project 看起来像:

#!/usr/bin/env node
require('../lib/project.js')

只要 /src/project.babel 被编译为 /lib/project.js 并且它们都保持同步,它就应该可以工作。

两种方法是观察并使用构建系统重新编译 like webpack or write an npm prepublish script 以仅在发布包时编译。