将命令分配给我的NPM软件包而无需全局安装

时间:2020-06-06 14:21:08

标签: node.js npm

某些NPM软件包已安装到项目中,然后您就可以从项目<html> <body> <h1>A heading</h1> <div id="myDIV"></div> <script type="text/javascript" src="thejs.js"></script> <script type="text/javascript"> document.getElementById("myDIV").innerHTML="<p>Try this one comes from script inside html source</p>" </script> <script type="text/javascript" src="external.js"></script> </body> </html> 中运行它们。

例如webpack-dev-server

安装后,我只需要添加:

scripts

在我的"dev": "webpack-dev-server" 脚本中,它将启动package.json

这是如何工作的?该命令尚未全局安装,但是我的Node项目知道它已连接到我已安装的软件包。

我只能找到有关将命令添加到软件包的webpack-dev-server中的bin属性中的信息,但是除非将软件包全局安装,否则该信息将无法正常工作。

我该如何实现?我找不到某个地方的官方文档吗?

1 个答案:

答案 0 :(得分:1)

您做对了,但是您缺少细小的东西...

每个包都可以声明一个二进制文件。如您所说,这是在package.json

bin属性中完成的

在安装时,npm会将文件符号链接到前缀/ bin中以进行全局安装,或..nodenode_modules / .bin /本地安装。

这正是webpack-dev-server所做的。其二进制文件已安装在./node_modules/.bin/中。

由于约定,npm \ npx能够找到并执行二进制文件。

在您的应用程序中,您可以利用此行为;并且任何依赖于您的软件包的软件包都将能够执行您的二进制软件包。

如果您想为运行脚本提供一个参数,请这样做

npm run webpack-dev-server -- --version