命令行程序的npm包的Shell脚本包装器

假设你有一个你想作为命令行程序使用的npm包,例如js-beautify。

当我全局安装时,我发现它确实有一个Windowsbatch file,实际上是两个在不同目录中具有相同名称的batch file(以及在UNIX上安装时的一个shell脚本)。

但是,当我看着github上的js美化源,没有任何batch file的迹象。 batch file从哪里来? 在npm文档中我没有看到这样的提及。

当你在package.jsonconfiguration“bin”属性,就像在这里使用js-beautify一样 。 具体来说, npm install使用cmd-shim模块来创build它们, 如下所示 。

我会想象 – 在我的情况下 – C:\ Program Files \ nodejs \ npm(可执行文件)最终负责创build操作系统特定的区别。 基于Windows的计算机不能只运行没有这种扩展名的文件,而是通过将npm.cmd添加到相同的文件夹中,这足以使Windows像UNIX工具箱那样运行足够的工作。

理论上讲,然后,在没有扩展名的情况下在UNIX世界中创build你的程序,然后把它安装在Windows世界中,让npm做它的事情。 它应该通过添加.cmd或.bat文件来弥补差距。