web-dev-qa-db-ja.com

package.json "scripts"からpowershell ps1スクリプトを実行する方法

package.json "scripts"からPowerShell ps1スクリプトを実行するにはどうすればよいですか?

Package.json "scripts"で基本的なスクリプトを設定する方法を知っています。たとえば、次の構成では、「これは単なるテストです」をコンソールに出力するnpm run testを実行できます。

"scripts": {
  "test": "echo \"this is only a test\""
}

ただし、PowerShellスクリプトを実行するより高度なシナリオがあります。このようなもの:

"scripts": {
  "buildAngular": "buildAngular.ps1"
}

スクリプトオブジェクトを使用して、このようなps1スクリプトを実行できますか?特別なセットアップ/構成は必要ですか?追加の制約はありますか?

16
user8570495

PowershellがPATHにあるとすると、次のように呼び出すことができます。

"scripts": {
    "test": "@powershell -NoProfile -ExecutionPolicy Unrestricted -Command ./test.ps1"
}

Windows 7とPowershell v4でテストされています。

制限は、Powershellがインストールされ、PATHに含まれている必要があることです。私はLinuxのPowershellでテストしなかったので、このソリューションが今のところ他のプラットフォームに移植できるかどうかはわかりません。

30
barnski

script-Shell config -npm config set script-Shell "powershell"または環境変数$env:npm_config_script_Shell="powershell"

それからあなたは使うことができます

"scripts": {
    "test": "Write-Host 'this is only a test'"
}

または

"scripts": {
    "buildAngular": ".\\buildAngular.ps1"
}

ただし、-NoProfileのようなパラメーターを指定できるかどうかはわかりません。

0
JeffRSon