假设我有
"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
说明:
- 使用
&&
(双与号)进行顺序执行。 - 使用
&
(单个“&”号)进行并行执行。
遵循@Mobiletainment的好答案,您还可以使用npm-run-all使命令更短,更易读。在您的情况下:
"scripts": {
...
"build": "run-s pre-build build_logic post_build exit"
}
run-s
是npm-run-all
提供的快捷方式,可以按顺序运行所有给定的npm-scripts,因此-s
(run-s
是的缩写npm-run-all -s
)。
您可以将它们串入另一个脚本中。 "start": "pre-build && build_logic && post_build && exit"
您可以为脚本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
你可以试试:
"scripts": {
"clean-dist": "rm -f ./dist/*.js && rm -f ./dist/*.map",
"build": "npm run clean-dist && parcel build ./packages/index.html"
},
您可以使用npm-run-all以多种不同方式组合多个命令
例如,如果您的脚本中包含以下脚本package.json
:
"scripts": {
"clean": "rimraf dist",
"lint": "eslint src",
"build": "babel src -o lib"
}
您可以像这样顺序地运行它们:
$ npm-run-all clean lint build
有关如何并行运行多个npm命令的信息,请参见此问题。
本文地址:http://javascript.askforanswer.com/shunxuyunxingnpmjiaoben.html
文章标签:cmd , javascript , node.js , npm
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!
文章标签:cmd , javascript , node.js , npm
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!
评论已关闭!