【发布时间】:2015-05-25 02:44:28
【问题描述】:
假设您有一个想要用作命令行程序的 npm 包,例如js-美化。
当我全局安装它时,我看到它确实有一个 Windows 批处理文件,实际上是在不同目录中具有相同名称的两个略有不同的批处理文件(以及在 UNIX 上安装时的 shell 脚本) .
但是当我查看 github 上的 js-beautify 源时,没有任何批处理文件的迹象。批处理文件来自哪里?我在 npm 文档中没有看到任何提及。
【问题讨论】:
假设您有一个想要用作命令行程序的 npm 包,例如js-美化。
当我全局安装它时,我看到它确实有一个 Windows 批处理文件,实际上是在不同目录中具有相同名称的两个略有不同的批处理文件(以及在 UNIX 上安装时的 shell 脚本) .
但是当我查看 github 上的 js-beautify 源时,没有任何批处理文件的迹象。批处理文件来自哪里?我在 npm 文档中没有看到任何提及。
【问题讨论】:
当您将package.json 中的“bin”属性配置为js-beautify does here 时,就会发生这种情况。具体来说,npm install 使用cmd-shim 模块将它们创建为shown here。
【讨论】:
我想——在我的例子中——C:\Program Files\nodejs\npm(可执行文件)最终负责创建操作系统——像这样的特定差异。基于 Windows 的计算机不能像这样只运行没有扩展名的文件,但是通过将 npm.cmd 添加到同一个文件夹中,这足以让 Windows 像 UNIX 机器一样工作。
理论上,在没有扩展的情况下在 UNIX 世界中创建程序,然后在 Windows 世界中安装它,让 npm 完成它的工作。它应该通过添加 .cmd 或 .bat 文件来弥补差距。
【讨论】: