资讯专栏INFORMATION COLUMN

npm的scripts在Windows下无法并行或串行执行多命令的解决

isLishude / 1630人阅读

摘要:我用开发,这个的是可以很好的执行并行或者串行的脚本的,比如我们来看下我这个在下的正常执行的代码段这里我执行可以并行处理和,而执行后面的这个名领的时候又可以触发执行,然后再次触发对应的三个命令。我暂时不关心他多层调用的问题。

我用MacOS开发,这个npm的scripts是可以很好的执行并行或者串行的脚本的,比如我们来看下我这个在MacOS下的正常执行的scripts代码段:

  "scripts": {
    "dev": "webpack --watch --config webpack.dev.js & npm run s",
    "build": "webpack --config webpack.prod.js",
    "prod": "webpack --config webpack.prod.js & npm run s",
    "lint": "eslint --ext ./src/*.js",
    "lintfix": "eslint --fix ./src/*.js",
    "sa": "nodemon ./servers/51la/server.js",
    "sb": "nodemon ./servers/jump/server.js",
    "sc": "nodemon ./server.js",
    "s": "npm run sa & npm run sb & npm run sc"
  },

这里我执行npm run dev可以并行处理webpack --watch --config webpack.dev.jsnpm run s,而执行后面的这个名领的时候又可以触发执行npm run sa & npm run sb & npm run sc,然后再次触发对应的三个命令。我暂时不关心他多层调用的问题。

重点:其他人用Windows就完蛋了

怎么个完蛋法,Windows下不支持该方式,执行了webpack --watch --config webpack.dev.js就停止了,为了解决跨平台兼容问题。我也是找了几个相关的解决方案,比如npm-run-allConcurrentlyparallelshellcross-env等等,不过综合测试总结了一下,concurrently还是很方便的。于是使用这个工具,调整了scripts就解决了问题:

  "scripts": {
    "dev": "concurrently "webpack --watch --config webpack.dev.js" "npm:s-*"",
    "build": "webpack --config webpack.prod.js",
    "prod": "webpack --config webpack.prod.js & npm run s",
    "lint": "eslint --ext ./src/*.js",
    "lintfix": "eslint --fix ./src/*.js",
    "s-a": "nodemon ./servers/51la/server.js",
    "s-b": "nodemon ./servers/jump/server.js",
    "s-c": "nodemon ./server.js",
    "s": "npm run sa & npm run sb & npm run sc",
  }

这样就解决了,但是如果遇到串行,也就是按顺序执行(MacOS下只需要将&换成&&即可),貌似又无法解决?所以这块在跨平台的处理上可能还要看看有没有办法。

相关阅读:

How can I run multiple npm scripts in parallel?

4 Solutions To Run Multiple Node.js or NPM Commands Simultaneously

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/105677.html

相关文章

  • 【译】相对完整Gulp4升级指南

    摘要:跟现在的类似的,把命令行工具从的核心代码中剥离了。和都能使用独立出来的命令行工具。是无法做出相应的区分的。之前的中,在我们传入一个通配符和可选参数后,我们可以再指定一个任务数组或者一个回调函数用来处理事件数据。 原文链接:The Complete-Ish Guide to Upgrading to Gulp 4 虽然Gulp4始终在开发中,但是你要坚信在将来的某一天你一定可以等到它的正...

    leanote 评论0 收藏0
  • 使用 ava 和 jsdom 做前端测试

    摘要:前同事留下的测试,是基于浏览器的,主要还是功能测试。这里不详细说怎么在浏览器端使用测试了。而且作者也是建议和支持这样做的,简单明了的测试脚本,重要性有时候可能和测试本身一样重要。经测试,在浏览器也有这种问题。 2016-09-03 更新 随着在工作学习中更多地接触、使用测试工具,发现自己在本文中的一些记录是不准确、不正确的。 今天(九月三日)在家看了 NingJs 的直播,其中有一个分...

    GHOST_349178 评论0 收藏0
  • 使用 AVA 做自动化测试

    摘要:单元测试,测试一个简单的组件。接口测试,用户信息接口测试。学习借鉴,一些使用做测试的开源项目。这里使用到的内置断言断言结果值等于我们想要的预期值,则测试通过。在里放入一个函数,函数自动执行,里面执行的结果必须抛出错误,则测试通过。 目录 1、为什么选择 AVA ?2、API 概览。3、准备工作。4、单元测试,测试一个简单的工具函数。5、使用 Promise、Async/await、Ob...

    Cruise_Chan 评论0 收藏0
  • js文件加载优化

    摘要:所以这里需要另外的操作来对文件加载进行优化加载这是中定义的一个属性,它用来表示的是,当渲染引擎遇到的时候,如果引用的是外部资源,则会暂时挂起,并进行加载。 在js引擎部分,我们可以了解到,当渲染引擎解析到script标签时,会将控制权给JS引擎,如果script加载的是外部资源,则需要等待下载完后才能执行。 所以,在这里,我们可以对其进行很多优化工作。 放置在body底部 为了让渲染引...

    zhaochunqi 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<