Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以文件夹名称作为参数的Node.js命令行_Node.js - Fatal编程技术网

以文件夹名称作为参数的Node.js命令行

以文件夹名称作为参数的Node.js命令行,node.js,Node.js,我在查看github repo时注意到,在package.json中,有一个脚本定义为“start”:节点服务器(服务器是包含index.js文件的文件夹的名称) 这条线到底是干什么的?当我们将文件夹名作为参数传递时,节点是否在此文件夹内搜索文件index.js?简短的回答是,是 详细回答:package.json由识别。只要您的机器上安装了npm,您就可以使用它来完成许多事情,例如安装NodeJS模块,但您也可以使用它来运行小脚本/命令。这些命令必须添加到package.json中的scrip

我在查看github repo时注意到,在
package.json
中,有一个脚本定义为
“start”:节点服务器(服务器是包含index.js文件的文件夹的名称)

这条线到底是干什么的?当我们将文件夹名作为参数传递时,节点是否在此文件夹内搜索文件
index.js

简短的回答是,是

详细回答:
package.json
由识别。只要您的机器上安装了npm,您就可以使用它来完成许多事情,例如安装NodeJS模块,但您也可以使用它来运行小脚本/命令。这些命令必须添加到
package.json
中的
scripts
字段下。要运行这些命令,请调用
npm run
。此功能是为了方便起见,与包管理没有任何关系。也就是说,这里有一些可用的钩子,在将包发布到时会调用这些钩子(稍后将详细介绍)

当导入任何文件夹时,NodeJS将搜索并导入
index.js
(这里的节点可能正在使用CommonJS,但我100%不确定)。因此,在您的示例中,通过调用
npm start
,您正在调用npm,它正在调用运行
server/index.js
node server
。您可以在这里调用任何您想要的东西,例如,您可以通过创建脚本
“my script”:“my script.sh”
,然后通过npm调用
npm run my script
来启动shell脚本。这是一个简单的示例,但不是一个非常有用的示例—npm脚本的出现是因为您需要定期运行复杂的命令

例如,可以使用不同的命令来运行具有不同上下文的程序:

{
“脚本”:{
“开始”:“设置节点\u ENV=development&&webpack--watch”,
“干净”:“rimraf区”,
“构建生产”:“设置节点\u ENV=production&&npm run clean&&webpack”,
“部署”:“sam部署”
}
}
  • npm启动
    用于开发
  • npm运行构建生产
    打包生产构建
  • npm运行deploy
    将代码部署到服务器
请注意,在上一段中,我只是简单地使用了
npm start
,而不是前面所述的
npm run start
——有一些保留的脚本名称具有额外的功能,请参阅页面了解完整的详细信息。

简短的回答是,是的

详细回答:
package.json
由识别。只要您的机器上安装了npm,您就可以使用它来完成许多事情,例如安装NodeJS模块,但您也可以使用它来运行小脚本/命令。这些命令必须添加到
package.json
中的
scripts
字段下。要运行这些命令,请调用
npm run
。此功能是为了方便起见,与包管理没有任何关系。也就是说,这里有一些可用的钩子,在将包发布到时会调用这些钩子(稍后将详细介绍)

当导入任何文件夹时,NodeJS将搜索并导入
index.js
(这里的节点可能正在使用CommonJS,但我100%不确定)。因此,在您的示例中,通过调用
npm start
,您正在调用npm,它正在调用运行
server/index.js
node server
。您可以在这里调用任何您想要的东西,例如,您可以通过创建脚本
“my script”:“my script.sh”
,然后通过npm调用
npm run my script
来启动shell脚本。这是一个简单的示例,但不是一个非常有用的示例—npm脚本的出现是因为您需要定期运行复杂的命令

例如,可以使用不同的命令来运行具有不同上下文的程序:

{
“脚本”:{
“开始”:“设置节点\u ENV=development&&webpack--watch”,
“干净”:“rimraf区”,
“构建生产”:“设置节点\u ENV=production&&npm run clean&&webpack”,
“部署”:“sam部署”
}
}
  • npm启动
    用于开发
  • npm运行构建生产
    打包生产构建
  • npm运行deploy
    将代码部署到服务器

请注意,在上一段中,我只是简单地使用了
npm start
,而不是前面所述的
npm run start
——有一些保留的脚本名称具有额外的功能,请参阅页面了解完整的详细信息。

当找不到确切的文件时,Node将进行有限的搜索

在将
服务器
作为
节点
的“script”参数提供的情况下:

第一个
节点
将尝试打开名为
服务器
的文件
如果未找到,则它将查找
server.js
server.json
,然后查找
server.node

如果这些不存在且参数为目录,
node
将尝试打开并
server/index.js
server/index.json
然后
server/index.node

第一场比赛获胜

$ strace -e stat node server

当找不到确切的文件时,节点将执行有限的搜索

在将
服务器
作为
节点
的“script”参数提供的情况下:

第一个
节点
将尝试打开名为
服务器
的文件
如果未找到,则它将查找
server.js
server.json
,然后查找
server.node

如果这些不存在且参数为目录,
node
将尝试打开并
server/index.js
server/index.json
然后
server/index.node

第一场比赛获胜

$ strace -e stat node server

谢谢你详细的回答。我的问题更多的是关于命令
节点服务器
,而不是关于npm脚本的更一般的用例。我想知道当node命令的参数为actua时node查找什么