[英]Can my NPM CLI package be executed on CMD without installing globally?
[英]Assigning a command to my NPM Package without installing globally
一些 NPM 包安装到项目中,然后您可以从项目scripts
中运行它们。
这方面的一个例子是webpack-dev-server
。
安装后,我只需要添加:
"dev": "webpack-dev-server"
在我的package.json
脚本中,它将启动webpack-dev-server
。
这是如何运作的? 该命令未全局安装,但我的 Node 项目知道它已连接到我已安装的 package。
我只能在我的包的package.json
中找到有关将命令添加到bin
属性的信息,但除非全局安装 ZEFE90A8E604A7C840E88D03A67F6B78D,否则这将不起作用。
我如何实现这一目标? 是否有我无法找到的官方文档?
你是对的,但你错过了一些小东西......
每个 package 都可以声明一个二进制文件。 正如你所说,这是在package.json
的bin
属性中完成的
安装时,npm 会将该文件符号链接到前缀/bin 以进行全局安装,或将./node_modules/.bin/ 符号链接到本地安装。
这正是webpack-dev-server
所做的。 它的二进制文件安装在./node_modules/.bin/
中。
由于约定,npm\npx 能够找到二进制文件并执行它。
在您的应用程序中,您可以利用此行为; 任何依赖于 package 的 package 都将能够执行 package 二进制文件。
如果您想为运行脚本提供参数,请这样做
npm run webpack-dev-server -- --version
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.