从powershell运行节点模块

假设我有一个内部安装了节点模块的文件夹。 我怎样才能使用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" } } 

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

你可以在你的package.json定义一个webpack脚本:

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

然后你可以用npm run webpack或者yarn webpack来运行它。

如果您尝试在node.js脚本中执行该命令,请使用__dirnamevariables。

__dirname (几乎)总是指包含脚本的目录。