Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.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 从powershell运行节点模块_Node.js_Powershell - Fatal编程技术网

Node.js 从powershell运行节点模块

Node.js 从powershell运行节点模块,node.js,powershell,Node.js,Powershell,假设我有一个文件夹,里面安装了一个节点模块。如何使用powershell运行此模块?例如,我有一个文件夹,里面安装了webpack,我希望能够像这样做 node webpack 这不起作用,因为它找不到模块。但是,如果我这样做,它会起作用: node ".\node_module\webpack\bin\webpack.js" 但是,我不能真正使用它,因为我正在编写一个powershell脚本,该脚本允许用户使用操作定义json文件。例如: { "type": "run-node",

假设我有一个文件夹,里面安装了一个节点模块。如何使用powershell运行此模块?例如,我有一个文件夹,里面安装了webpack,我希望能够像这样做

node webpack
这不起作用,因为它找不到模块。但是,如果我这样做,它会起作用:

node ".\node_module\webpack\bin\webpack.js"
但是,我不能真正使用它,因为我正在编写一个powershell脚本,该脚本允许用户使用操作定义json文件。例如:

{
  "type": "run-node",
  "options": {
    "module": "webpack",
    "parameters": "--configFile=config/webpack.prod.js"
  }
}

由于要执行的模块是动态的,我不知道它将在哪里(除非所有模块都安装在“\node\u modules\module\bin\module.js”中),因此我无法启动它。

您可以在
包中定义
网页包
脚本。json

"scripts": {
    "webpack": "node \"./node_module/webpack/bin/webpack.js\""
}

然后您可以使用
npm run webpack
warn webpack
来运行它。

如果您试图在node.js脚本中执行命令,请使用
\u dirname
变量


\uuuu dirname
(几乎)总是指包含脚本的目录。

我也不想这样做,因为可以通过指定配置(调试或发布)来启动脚本,并且根据这一点,参数会更改。基本上,我希望保留问题中所示的文件,而不必“污染”“package.json”文件。我想我可以打开模块的“package.json”并检索“bin”属性的值,但我想知道是否有最简单的方法。