Node.js node_模块中.bin文件夹的用途是什么?

Node.js node_模块中.bin文件夹的用途是什么?,node.js,bower,Node.js,Bower,今天一位同事向我解释了如何创建nodejs项目,我注意到在./node_模块中有一个名为.bin的不可见文件夹。我必须说,我是在添加到项目“bootcamp”和“bower”工具后发现这一点的。垃圾箱的用途是什么?它是为什么而创建的?这是一个文件夹,节点模块中的二进制文件(可执行文件)位于该文件夹中 : 可执行文件在全局模式下,可执行文件链接到 Unix上的{prefix}/bin,或在Windows上直接插入{prefix} 在本地模式下,可执行文件链接到./node\u modules/.b

今天一位同事向我解释了如何创建nodejs项目,我注意到在./node_模块中有一个名为.bin的不可见文件夹。我必须说,我是在添加到项目“bootcamp”和“bower”工具后发现这一点的。垃圾箱的用途是什么?它是为什么而创建的?

这是一个文件夹,节点模块中的二进制文件(可执行文件)位于该文件夹中

:

可执行文件在全局模式下,可执行文件链接到 Unix上的{prefix}/bin,或在Windows上直接插入{prefix}

在本地模式下,可执行文件链接到./node\u modules/.bin so 它们可以用于通过npm运行的脚本。(用于 例如,以便在运行npm时,测试运行程序将位于路径中 测试。)


目录
节点\u modules/.bin
是存储项目使用的模块二进制文件的地方,通常使用指向相应模块目录中相应二进制文件的符号链接。例如,这就是我从npm软件包标准(JavaScript样式指南、linter和formatter)中看到二进制
标准的方式

当我运行
node\u modules/.bin/standard
时,我确实在从npm包
standard
运行
node\u modules/standard/bin/cmd.js
。此符号链接是在安装软件包时创建的,即在
npm安装标准时创建的

这些二进制文件还允许您直接从npm脚本使用模块。例如,您可能没有使用
npm install standard-g
全局安装
standard
,这意味着您无法直接从模块主目录上的终端运行
standard

但是,您可以通过分别将以下内容添加到
包.json
,来编写或脚本:

"scripts": {
  "start": "standard src/*.js",
  "test": "standard src/*.js && node myTest.js"
}
这是完全正确的,因为您将标准作为项目依赖项。即使模块不是全局的,操作系统也不能直接使用,npm也可以为给定的
标准
模块名称查找bin文件夹,并触发编译后的二进制文件。因此,npm确实运行这样一个脚本:

"start": "node_modules/.bin/standard src/*.js",

好啊谢谢我不知道如何在谷歌上找到这类信息。有没有什么方法可以让我在谷歌找到.bin的用途?事实上,我现在正试图找到什么是config.rb文件,但什么也没有得到。感谢我的“节点_模块中的bin文件夹”第三个结果,标题为“npm文件夹”。同样重要的是,可以通过这种方式运行
devdependences
中的任意二进制文件<代码>npm运行
可用于此操作。这一点很重要,因为它允许您摆脱启动/构建/测试项目所需的全局依赖关系,并摆脱大型自述文件,该自述文件描述了需要安装哪个版本的依赖关系才能使所有这些工作正常进行。唯一剩下的全局依赖项是节点本身。这也可以通过一些节点版本管理器(例如Volta)来解决,它可以将节点版本固定到您的
package.json
"start": "node_modules/.bin/standard src/*.js",