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スクリプトを実行できますか?特別なセットアップ/構成は必要ですか?追加の制約はありますか?
PowershellがPATHにあるとすると、次のように呼び出すことができます。
"scripts": {
"test": "@powershell -NoProfile -ExecutionPolicy Unrestricted -Command ./test.ps1"
}
Windows 7とPowershell v4でテストされています。
制限は、Powershellがインストールされ、PATHに含まれている必要があることです。私はLinuxのPowershellでテストしなかったので、このソリューションが今のところ他のプラットフォームに移植できるかどうかはわかりません。
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のようなパラメーターを指定できるかどうかはわかりません。