顺序运行NPM脚本

2020/11/02 17:42 · javascript ·  · 0评论

假设我有

"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-snpm-run-all提供的快捷方式,可以按顺序运行所有给定的npm-scripts,因此-srun-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
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!