私が持っているとしましょう
"scripts": {
"pre-build": "echo \"Welcome\" && exit 1",
"build_logic": "start cmd.exe @cmd /k \"yo esri-appbuilder-js:widget && exit 1\"",
"post_build": "start C:\\WebAppBuilderForArcGIS\\startupShortcut",
"exit" : "start cmd.exe @cmd /k \"echo \"goodbye\" && exit 1\""
},
これらのスクリプトをすべて順次起動させるために実行できるNPMコマンドの種類。プリ/ポストフィックスを使用すると、それらは順番に起動しますが、実行前に親スクリプトが終了するのを待ちません。 async.seriesヘルパー関数でShellコマンドを起動するときにGulpタスクを順番に起動させるにはどうすればよいですか? ?私はこれがGulpでできることを知っていますが、その機能を探求するために今のところNPMに固執したいと思います。助けてくれてありがとう!
これらのスクリプトをnpm runで起動し、二重アンパサンドで連結します&&
:
npm run pre-build && npm run build_logic && npm run post_build && npm run exit
説明:
&&
(二重アンパーサンド)を使用します。&
(シングルアンパサンド)を使用してください。あなたはそれらを別のスクリプトに文字列化することができます。 "start": "pre-build && build_logic && post_build && exit"
@ Mobiletainmentのすばらしい answer に続いて、 npm-run-all を使用してコマンドをもっと短くし、読みやすくすることもできます。あなたの場合:
"scripts": {
...
"build": "run-s pre-build build_logic post_build exit"
}
run-s
はnpm-run-all
が提供するショートカットで、指定されたすべてのnpmスクリプトを順次実行します。したがって、-s
(run-s
はnpm-run-all -s
の短いバージョンです)。
スクリプトが自動的に実行されるように、pre
とpost
を前に付けることができます。
"scripts": {
"prebuild": "echo \"Welcome\" && exit 1",
"build": "start cmd.exe @cmd /k \"yo esri-appbuilder-js:widget && exit 1\"",
"postbuild": "start C:\\WebAppBuilderForArcGIS\\startupShortcut",
"exit" : "start cmd.exe @cmd /k \"echo \"goodbye\" && exit 1\""
}
それからnpm run build
を実行してください