我有用 typescript 制作的node.js 模块。 全局安装 type-script 模块后:
npm install -g ts-node
我制作了一个名为e2e的模块,它可以获取命令提示符争论。 之后我可以打电话
ts-node e2e
但是,我仍然需要通过 e2e 调用这个模块
e2e -a -b -c
其中 -a、-b、-c 是命令提示符参数。
我尝试执行bat文件,例如:
ts-node e2e -a -b -c
但它使用这 4 个参数(e2e、-a、-b、-c)调用 ts-node。
这个问题如何解决?我最终需要使用参数调用 e2e。
最佳答案
您需要使用 shebang 行作为脚本的第一行。
例如:
#!/usr/bin/env node
参见:
然后您将使用以下命令将其全局安装:
npm install -g your-module
为此,您需要包含 package.json 的 bin
部分。
请参阅文档:
或者您可以手动将其复制到 PATH 中的某个目录,例如 /usr/bin/local/bin
等,但它需要 shebang 行并且必须是可执行的:
chmod a+x your-file-name
参见:
示例
例如,关于如何做到这一点,请参阅我在 GitHub 和 npm 上的项目,它正是这样做的:
舍邦线
查看脚本中的 shebang 行:
#!/usr/bin/env node
package.json
查看package.json
中的“bin”
部分:
"bin": { "websocket-vs-socket.io": "ws-vs-si.js" },
如您所见,您甚至可以使用与原始文件不同的名称来安装它。
用法
并查看有关如何安装和使用它的说明:
Install:
npm i -g websocket-vs-socket.io
Run the server:
websocket-vs-socket.io
这是一个非常简单的项目,您可以在以下位置查看:
和:
关于node.js - 在命令提示符中安装 node.js 模块以供全局使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42812505/